From 94e641e7bc2cf0e628fa2be01b36d2b0db8f8db1 Mon Sep 17 00:00:00 2001 From: Bugra SARI Date: Sun, 14 Dec 2025 21:50:09 +0300 Subject: [PATCH] v2 --- .github/workflows/build-linux.yml | 12 +- .github/workflows/build-macos.yml | 18 +- .github/workflows/build-windows.yml | 10 +- .github/workflows/test-android-sample.yml | 32 +- .github/workflows/test-ios-sample.yml | 22 +- {packages => cppjs-core}/cpp.js/CHANGELOG.md | 0 {packages => cppjs-core}/cpp.js/README.md | 0 {packages => cppjs-core}/cpp.js/package.json | 0 .../cpp.js/src/actions/buildJs.js | 4 +- cppjs-core/cpp.js/src/actions/buildWasm.js | 127 + .../cpp.js/src/actions/createInterface.js | 0 .../cpp.js/src/actions/createLib.js | 41 +- .../cpp.js/src/actions/createXCFramework.js | 0 cppjs-core/cpp.js/src/actions/extensions.js | 7 + .../cpp.js/src/actions/getAllBridges.js | 0 .../cpp.js/src/actions/getCmakeParameters.js | 20 +- .../cpp.js/src/actions/getData.js | 8 +- .../cpp.js/src/actions/getDependLibs.js | 0 .../cpp.js/src/actions/run.js | 4 +- .../cpp.js/src/assets/CMakeLists.txt | 4 + .../cpp.js/src/assets/browser.js | 47 +- .../cpp.js/src/assets/commonBridges.cpp | 0 .../cpp.js/src/assets/cppjsEmptySource.cpp | 0 cppjs-core/cpp.js/src/assets/dist.cmake | 66 + .../cpp.js/src/assets/ios.toolchain.cmake | 0 .../cpp.js/src/assets/node.js | 0 {packages => cppjs-core}/cpp.js/src/bin.js | 32 +- {packages => cppjs-core}/cpp.js/src/index.js | 0 .../cpp.js/src/integration/getCppJsScript.js | 5 +- .../src/integration/getDependFilePath.js | 0 .../state/calculateDependencyParameters.js | 0 .../cpp.js/src/state/index.js | 7 +- .../cpp.js/src/state/loadConfig.js | 19 +- .../src/utils/downloadAndExtractFile.js | 0 cppjs-core/cpp.js/src/utils/findFiles.js | 5 + .../cpp.js/src/utils/fixPackageName.js | 0 .../cpp.js/src/utils/getAbsolutePath.js | 0 .../cpp.js/src/utils/getCMakeListsFilePath.js | 0 .../cpp.js/src/utils/getOsUserAndGroupId.js | 0 .../cpp.js/src/utils/getParentPath.js | 0 .../cpp.js/src/utils/hash.js | 0 .../cpp.js/src/utils/loadJs.js | 0 .../cpp.js/src/utils/loadJson.js | 0 .../cpp.js/src/utils/pullDockerImage.js | 2 +- .../cpp.js/src/utils/systemKeys.js | 0 .../cpp.js/src/utils/writeJson.js | 0 .../cppjs-core-create-app/.npmignore | 0 .../cppjs-core-create-app/CHANGELOG.md | 0 .../cppjs-core-create-app/README.md | 0 .../cppjs-core-create-app/package.json | 0 .../cppjs-core-create-app/src/index.js | 0 .../cppjs-core-create-app/src/samples.js | 0 .../cppjs-core-create-app/src/utils.js | 0 .../cppjs-core-docker/CHANGELOG.md | 0 .../cppjs-core-docker/Dockerfile | 14 +- .../cppjs-core-docker/DraftWindowsDockerfile | 0 .../cppjs-core-docker/README.md | 0 .../cppjs-core-docker/package.json | 4 +- .../cppjs-core-embind-jsi/.gitignore | 0 .../cppjs-core-embind-jsi/.npmignore | 0 .../cppjs-core-embind-jsi/CHANGELOG.md | 0 .../cppjs-core-embind-jsi/README.md | 0 .../cppjs-core-embind-jsi/cpp/CMakeLists.txt | 0 .../cpp/src/emscripten/bind.cpp | 0 .../cpp/src/emscripten/bind.h | 0 .../cpp/src/emscripten/em_macros.h | 0 .../cpp/src/emscripten/val.h | 0 .../cpp/src/emscripten/wire.h | 0 .../cppjs-core-embind-jsi/cppjs.config.mjs | 0 .../cppjs-core-embind-jsi/js/embind.js | 0 .../cppjs-core-embind-jsi/package.json | 0 .../cppjs-extension-sample/index.mjs | 40 + .../cppjs-extension-sample/package.json | 4 + .../LICENSE | 22 + .../README.md | 83 + .../cppjs.build.js | 182 + .../cppjs.config.js | 33 + .../package.json | 31 + .../cppjs-package-curl-android/LICENSE | 22 + .../cppjs-package-curl-android/README.md | 83 + .../cppjs-package-curl-android/cppjs.build.js | 182 + .../cppjs.config.js | 30 + .../cppjs-package-curl-android/package.json | 31 + .../LICENSE | 22 + .../README.md | 83 + .../cppjs-package-curl.podspec | 13 + .../cppjs.build.js | 182 + .../cppjs.config.js | 33 + .../package.json | 31 + .../cppjs-package-curl-ios/LICENSE | 22 + .../cppjs-package-curl-ios/README.md | 83 + .../cppjs-package-curl.podspec | 13 + .../cppjs-package-curl-ios/cppjs.build.js | 182 + .../cppjs-package-curl-ios/cppjs.config.js | 30 + .../cppjs-package-curl-ios/package.json | 31 + .../cppjs-package-curl-multithread/LICENSE | 22 + .../cppjs-package-curl-multithread/README.md | 83 + .../cppjs.build.js | 182 + .../cppjs.config.js | 14 + .../package.json | 23 + .../LICENSE | 22 + .../README.md | 83 + .../cppjs.build.js | 182 + .../cppjs.config.js | 31 + .../package.json | 31 + .../cppjs-package-curl-wasm/LICENSE | 22 + .../cppjs-package-curl-wasm/README.md | 83 + .../cppjs-package-curl-wasm/cppjs.build.js | 182 + .../cppjs-package-curl-wasm/cppjs.config.js | 28 + .../cppjs-package-curl-wasm/package.json | 31 + .../cppjs-package-curl/CHANGELOG.md | 7 + .../cppjs-package-curl/LICENSE | 22 + .../cppjs-package-curl/README.md | 83 + .../cppjs-package-curl.podspec | 13 + .../cppjs-package-curl/cppjs.build.js | 182 + .../cppjs-package-curl/cppjs.config.js | 14 + .../cppjs-package-curl/package.json | 23 + .../.npmignore | 0 .../LICENSE | 0 .../README.md | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 16 + .../package.json | 28 + .../cppjs-package-expat-android}/.npmignore | 0 .../cppjs-package-expat-android/LICENSE | 21 + .../cppjs-package-expat-android/README.md | 50 + .../cppjs.build.js | 17 + .../cppjs.config.js | 13 + .../cppjs-package-expat-android/package.json | 28 + .../.npmignore | 0 .../LICENSE | 21 + .../README.md | 50 + .../cppjs-package-expat.podspec | 0 .../cppjs.build.js | 17 + .../cppjs.config.js | 16 + .../package.json | 28 + .../cppjs-package-expat-ios}/.npmignore | 0 .../cppjs-package-expat-ios/LICENSE | 21 + .../cppjs-package-expat-ios/README.md | 50 + .../cppjs-package-expat.podspec | 13 + .../cppjs-package-expat-ios/cppjs.build.js | 17 + .../cppjs-package-expat-ios/cppjs.config.js | 13 + .../cppjs-package-expat-ios}/package.json | 28 +- .../.npmignore | 0 .../cppjs-package-expat-multithread/LICENSE | 21 + .../cppjs-package-expat-multithread/README.md | 50 + .../cppjs.build.js | 17 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 0 .../LICENSE | 21 + .../README.md | 50 + .../cppjs.build.js | 17 + .../cppjs.config.js | 16 + .../package.json | 28 + .../cppjs-package-expat-wasm}/.npmignore | 0 .../cppjs-package-expat-wasm/LICENSE | 21 + .../cppjs-package-expat-wasm/README.md | 50 + .../cppjs-package-expat-wasm/cppjs.build.js | 17 + .../cppjs-package-expat-wasm/cppjs.config.js | 13 + .../cppjs-package-expat-wasm/package.json | 28 + .../cppjs-package-expat}/.npmignore | 0 .../cppjs-package-expat/CHANGELOG.md | 0 .../cppjs-package-expat/LICENSE | 21 + .../cppjs-package-expat/README.md | 50 + .../cppjs-package-expat.podspec | 13 + .../cppjs-package-expat/cppjs.build.js | 17 + .../cppjs-package-expat/cppjs.config.js | 14 + .../cppjs-package-expat/package.json | 23 + .../.npmignore | 0 .../LICENSE | 0 .../README.md | 0 .../assets/gdal_empty_file.cpp | 0 .../cppjs.build.js | 2 +- .../cppjs.config.js | 52 + .../package.json | 40 + .../cppjs-package-gdal-android/.npmignore | 11 + .../cppjs-package-gdal-android/LICENSE | 467 +++ .../cppjs-package-gdal-android/README.md | 50 + .../assets/gdal_empty_file.cpp | 0 .../cppjs-package-gdal-android/cppjs.build.js | 59 + .../cppjs.config.js | 49 + .../cppjs-package-gdal-android/package.json | 40 + .../.npmignore | 11 + .../LICENSE | 467 +++ .../README.md | 50 + .../assets/gdal_empty_file.cpp | 0 .../cppjs-package-gdal.podspec | 0 .../cppjs.build.js | 59 + .../cppjs.config.js | 52 + .../package.json | 40 + .../cppjs-package-gdal-ios/.npmignore | 11 + .../cppjs-package-gdal-ios/LICENSE | 467 +++ .../cppjs-package-gdal-ios/README.md | 50 + .../assets/gdal_empty_file.cpp | 0 .../cppjs-package-gdal.podspec | 15 + .../cppjs-package-gdal-ios/cppjs.build.js | 59 + .../cppjs-package-gdal-ios/cppjs.config.js | 49 + .../cppjs-package-gdal-ios}/package.json | 48 +- .../cppjs-package-gdal-multithread/.npmignore | 11 + .../cppjs-package-gdal-multithread/LICENSE | 467 +++ .../cppjs-package-gdal-multithread/README.md | 50 + .../cppjs.build.js | 59 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 11 + .../LICENSE | 467 +++ .../README.md | 50 + .../assets/gdal_empty_file.cpp | 0 .../cppjs.build.js | 59 + .../cppjs.config.js | 65 + .../package.json | 40 + .../cppjs-package-gdal-wasm/.npmignore | 11 + .../cppjs-package-gdal-wasm/LICENSE | 467 +++ .../cppjs-package-gdal-wasm/README.md | 50 + .../assets/gdal_empty_file.cpp | 0 .../cppjs-package-gdal-wasm/cppjs.build.js | 59 + .../cppjs-package-gdal-wasm/cppjs.config.js | 62 + .../cppjs-package-gdal-wasm/package.json | 40 + .../cppjs-package-gdal/.npmignore | 11 + .../cppjs-package-gdal/CHANGELOG.md | 0 .../cppjs-package-gdal/LICENSE | 467 +++ .../cppjs-package-gdal/README.md | 50 + .../assets/gdal_empty_file.cpp | 0 .../cppjs-package-gdal.podspec | 15 + .../cppjs-package-gdal/cppjs.build.js | 59 + .../cppjs-package-gdal/cppjs.config.js | 14 + .../cppjs-package-gdal/package.json | 23 + .../.npmignore | 0 .../LICENSE | 0 .../README.md | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-geos-android/.npmignore | 6 + .../cppjs-package-geos-android}/LICENSE | 0 .../cppjs-package-geos-android/README.md | 50 + .../cppjs-package-geos-android/cppjs.build.js | 7 + .../cppjs.config.js | 17 + .../cppjs-package-geos-android/package.json | 28 + .../.npmignore | 6 + .../LICENSE | 502 +++ .../README.md | 50 + .../cppjs-package-geos.podspec | 0 .../cppjs.build.js | 7 + .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-geos-ios/.npmignore | 6 + .../cppjs-package-geos-ios/LICENSE | 502 +++ .../cppjs-package-geos-ios/README.md | 50 + .../cppjs-package-geos.podspec | 13 + .../cppjs-package-geos-ios/cppjs.build.js | 7 + .../cppjs-package-geos-ios/cppjs.config.js | 17 + .../cppjs-package-geos-ios}/package.json | 28 +- .../cppjs-package-geos-multithread/.npmignore | 6 + .../cppjs-package-geos-multithread/LICENSE | 502 +++ .../cppjs-package-geos-multithread/README.md | 50 + .../cppjs.build.js | 7 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 6 + .../LICENSE | 502 +++ .../README.md | 50 + .../cppjs.build.js | 7 + .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-geos-wasm/.npmignore | 6 + .../cppjs-package-geos-wasm/LICENSE | 502 +++ .../cppjs-package-geos-wasm/README.md | 50 + .../cppjs-package-geos-wasm/cppjs.build.js | 7 + .../cppjs-package-geos-wasm/cppjs.config.js | 17 + .../cppjs-package-geos-wasm/package.json | 28 + .../cppjs-package-geos/.npmignore | 6 + .../cppjs-package-geos/CHANGELOG.md | 0 .../cppjs-package-geos/LICENSE | 502 +++ .../cppjs-package-geos/README.md | 50 + .../cppjs-package-geos.podspec | 13 + .../cppjs-package-geos/cppjs.build.js | 7 + .../cppjs-package-geos/cppjs.config.js | 14 + .../cppjs-package-geos/package.json | 23 + .../.npmignore | 0 .../LICENSE | 0 .../README.md | 0 .../cppjs.build.js | 7 + .../cppjs.config.js | 25 + .../package.json | 33 + .../cppjs-package-geotiff-android/.npmignore | 7 + .../cppjs-package-geotiff-android/LICENSE | 81 + .../cppjs-package-geotiff-android/README.md | 50 + .../cppjs.build.js | 32 + .../cppjs.config.js | 22 + .../package.json | 33 + .../.npmignore | 7 + .../LICENSE | 81 + .../README.md | 50 + .../cppjs-package-geotiff.podspec | 0 .../cppjs.build.js | 32 + .../cppjs.config.js | 25 + .../package.json | 33 + .../cppjs-package-geotiff-ios/.npmignore | 7 + .../cppjs-package-geotiff-ios/LICENSE | 81 + .../cppjs-package-geotiff-ios/README.md | 50 + .../cppjs-package-geotiff.podspec | 13 + .../cppjs-package-geotiff-ios/cppjs.build.js | 32 + .../cppjs-package-geotiff-ios/cppjs.config.js | 22 + .../cppjs-package-geotiff-ios}/package.json | 34 +- .../.npmignore | 7 + .../cppjs-package-geotiff-multithread/LICENSE | 81 + .../README.md | 50 + .../cppjs.build.js | 32 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 7 + .../LICENSE | 81 + .../README.md | 50 + .../cppjs.build.js | 32 + .../cppjs.config.js | 25 + .../package.json | 33 + .../cppjs-package-geotiff-wasm/.npmignore | 7 + .../cppjs-package-geotiff-wasm/LICENSE | 81 + .../cppjs-package-geotiff-wasm/README.md | 50 + .../cppjs-package-geotiff-wasm/cppjs.build.js | 32 + .../cppjs.config.js | 22 + .../cppjs-package-geotiff-wasm/package.json | 33 + .../cppjs-package-geotiff/.npmignore | 7 + .../cppjs-package-geotiff/CHANGELOG.md | 0 .../cppjs-package-geotiff/LICENSE | 81 + .../cppjs-package-geotiff/README.md | 50 + .../cppjs-package-geotiff.podspec | 13 + .../cppjs-package-geotiff/cppjs.build.js | 32 + .../cppjs-package-geotiff/cppjs.config.js | 14 + .../cppjs-package-geotiff/package.json | 23 + .../.npmignore | 7 + .../LICENSE | 502 +++ .../README.md | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-iconv-android/.npmignore | 7 + .../cppjs-package-iconv-android/LICENSE | 502 +++ .../cppjs-package-iconv-android/README.md | 50 + .../cppjs.build.js | 15 + .../cppjs.config.js | 17 + .../cppjs-package-iconv-android/package.json | 28 + .../.npmignore | 7 + .../LICENSE | 502 +++ .../README.md | 50 + .../cppjs-package-iconv.podspec | 0 .../cppjs.build.js | 15 + .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-iconv-ios/.npmignore | 7 + .../cppjs-package-iconv-ios/LICENSE | 502 +++ .../cppjs-package-iconv-ios/README.md | 50 + .../cppjs-package-iconv.podspec | 13 + .../cppjs-package-iconv-ios/cppjs.build.js | 15 + .../cppjs-package-iconv-ios/cppjs.config.js | 17 + .../cppjs-package-iconv-ios}/package.json | 28 +- .../.npmignore | 7 + .../cppjs-package-iconv-multithread/LICENSE | 502 +++ .../cppjs-package-iconv-multithread/README.md | 50 + .../cppjs.build.js | 15 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 7 + .../LICENSE | 502 +++ .../README.md | 50 + .../cppjs.build.js | 15 + .../cppjs.config.js | 27 + .../package.json | 28 + .../cppjs-package-iconv-wasm/.npmignore | 7 + .../cppjs-package-iconv-wasm/LICENSE | 502 +++ .../cppjs-package-iconv-wasm/README.md | 50 + .../cppjs-package-iconv-wasm/cppjs.build.js | 15 + .../cppjs-package-iconv-wasm/cppjs.config.js | 24 + .../cppjs-package-iconv-wasm/package.json | 28 + .../cppjs-package-iconv/.npmignore | 7 + .../cppjs-package-iconv/CHANGELOG.md | 0 .../cppjs-package-iconv/LICENSE | 502 +++ .../cppjs-package-iconv/README.md | 50 + .../cppjs-package-iconv.podspec | 13 + .../cppjs-package-iconv/cppjs.build.js | 15 + .../cppjs-package-iconv/cppjs.config.js | 14 + .../cppjs-package-iconv/package.json | 23 + .../LICENSE | 177 + .../README.md | 50 + .../assets/cacert.pem | 3480 +++++++++++++++++ .../cppjs.build.js | 25 + .../cppjs.config.js | 34 + .../package.json | 31 + .../cppjs-package-openssl-android/LICENSE | 177 + .../cppjs-package-openssl-android/README.md | 50 + .../assets/cacert.pem | 3480 +++++++++++++++++ .../cppjs.build.js | 25 + .../cppjs.config.js | 31 + .../package.json | 31 + .../LICENSE | 177 + .../README.md | 50 + .../assets/cacert.pem | 3480 +++++++++++++++++ .../cppjs-package-openssl.podspec | 14 + .../cppjs.build.js | 25 + .../cppjs.config.js | 32 + .../package.json | 31 + .../cppjs-package-openssl-ios/LICENSE | 177 + .../cppjs-package-openssl-ios/README.md | 50 + .../assets/cacert.pem | 3480 +++++++++++++++++ .../cppjs-package-openssl.podspec | 14 + .../cppjs-package-openssl-ios/cppjs.build.js | 25 + .../cppjs-package-openssl-ios/cppjs.config.js | 29 + .../cppjs-package-openssl-ios/package.json | 31 + .../cppjs-package-openssl-multithread/LICENSE | 177 + .../README.md | 50 + .../cppjs.build.js | 28 + .../cppjs.config.js | 14 + .../package.json | 26 + .../LICENSE | 177 + .../README.md | 50 + .../assets/cacert.pem | 3480 +++++++++++++++++ .../cppjs.build.js | 24 + .../cppjs.config.js | 20 + .../package.json | 31 + .../cppjs-package-openssl-wasm/LICENSE | 177 + .../cppjs-package-openssl-wasm/README.md | 50 + .../assets/cacert.pem | 3480 +++++++++++++++++ .../cppjs-package-openssl-wasm/cppjs.build.js | 24 + .../cppjs.config.js | 17 + .../cppjs-package-openssl-wasm/package.json | 31 + .../cppjs-package-openssl/CHANGELOG.md | 7 + .../cppjs-package-openssl/LICENSE | 177 + .../cppjs-package-openssl/README.md | 50 + .../cppjs-package-openssl/assets/cacert.pem | 3480 +++++++++++++++++ .../cppjs-package-openssl.podspec | 14 + .../cppjs-package-openssl/cppjs.build.js | 28 + .../cppjs-package-openssl/cppjs.config.js | 14 + .../cppjs-package-openssl/package.json | 26 + .../.npmignore | 7 + .../LICENSE | 0 .../README.md | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 33 + .../package.json | 32 + .../cppjs-package-proj-android/.npmignore | 7 + .../cppjs-package-proj-android/LICENSE | 34 + .../cppjs-package-proj-android/README.md | 50 + .../cppjs-package-proj-android/cppjs.build.js | 11 + .../cppjs.config.js | 30 + .../cppjs-package-proj-android/package.json | 32 + .../.npmignore | 7 + .../LICENSE | 34 + .../README.md | 50 + .../cppjs-package-proj.podspec | 0 .../cppjs.build.js | 11 + .../cppjs.config.js | 33 + .../package.json | 32 + .../cppjs-package-proj-ios/.npmignore | 7 + .../cppjs-package-proj-ios/LICENSE | 34 + .../cppjs-package-proj-ios/README.md | 50 + .../cppjs-package-proj.podspec | 14 + .../cppjs-package-proj-ios/cppjs.build.js | 11 + .../cppjs-package-proj-ios/cppjs.config.js | 30 + .../cppjs-package-proj-ios}/package.json | 32 +- .../cppjs-package-proj-multithread/.npmignore | 7 + .../cppjs-package-proj-multithread/LICENSE | 34 + .../cppjs-package-proj-multithread/README.md | 50 + .../cppjs.build.js | 11 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 7 + .../LICENSE | 34 + .../README.md | 50 + .../cppjs.build.js | 11 + .../cppjs.config.js | 41 + .../package.json | 32 + .../cppjs-package-proj-wasm/.npmignore | 7 + .../cppjs-package-proj-wasm/LICENSE | 34 + .../cppjs-package-proj-wasm/README.md | 50 + .../cppjs-package-proj-wasm/cppjs.build.js | 11 + .../cppjs-package-proj-wasm/cppjs.config.js | 38 + .../cppjs-package-proj-wasm/package.json | 32 + .../cppjs-package-proj/.npmignore | 7 + .../cppjs-package-proj/CHANGELOG.md | 0 .../cppjs-package-proj/LICENSE | 34 + .../cppjs-package-proj/README.md | 50 + .../cppjs-package-proj.podspec | 14 + .../cppjs-package-proj/cppjs.build.js | 11 + .../cppjs-package-proj/cppjs.config.js | 14 + .../cppjs-package-proj/package.json | 23 + .../.npmignore | 0 .../LICENSE | 0 .../README.md | 0 .../config.sub | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 29 + .../package.json | 35 + .../.npmignore | 9 + .../cppjs-package-spatialite-android/LICENSE | 35 + .../README.md | 50 + .../config.sub | 1885 +++++++++ .../cppjs.build.js | 50 + .../cppjs.config.js | 26 + .../package.json | 35 + .../.npmignore | 9 + .../LICENSE | 35 + .../README.md | 50 + .../config.sub | 1885 +++++++++ .../cppjs-package-spatialite.podspec | 0 .../cppjs.build.js | 50 + .../cppjs.config.js | 29 + .../package.json | 35 + .../cppjs-package-spatialite-ios/.npmignore | 9 + .../cppjs-package-spatialite-ios/LICENSE | 35 + .../cppjs-package-spatialite-ios/README.md | 50 + .../cppjs-package-spatialite-ios/config.sub | 1885 +++++++++ .../cppjs-package-spatialite.podspec | 13 + .../cppjs.build.js | 50 + .../cppjs.config.js | 26 + .../package.json | 38 +- .../.npmignore | 9 + .../LICENSE | 35 + .../README.md | 50 + .../cppjs.build.js | 50 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 9 + .../LICENSE | 35 + .../README.md | 50 + .../config.sub | 1885 +++++++++ .../cppjs.build.js | 50 + .../cppjs.config.js | 29 + .../package.json | 35 + .../cppjs-package-spatialite-wasm/.npmignore | 9 + .../cppjs-package-spatialite-wasm/LICENSE | 35 + .../cppjs-package-spatialite-wasm/README.md | 50 + .../cppjs-package-spatialite-wasm/config.sub | 1885 +++++++++ .../cppjs.build.js | 50 + .../cppjs.config.js | 26 + .../package.json | 35 + .../cppjs-package-spatialite/.npmignore | 9 + .../cppjs-package-spatialite/CHANGELOG.md | 0 .../cppjs-package-spatialite/LICENSE | 35 + .../cppjs-package-spatialite/README.md | 50 + .../cppjs-package-spatialite/config.sub | 1885 +++++++++ .../cppjs-package-spatialite.podspec | 13 + .../cppjs-package-spatialite/cppjs.build.js | 50 + .../cppjs-package-spatialite/cppjs.config.js | 14 + .../cppjs-package-spatialite/package.json | 23 + .../.npmignore | 7 + .../CHANGELOG.md | 7 + .../LICENSE | 0 .../README.md | 50 + .../cppjs.build.js | 25 + .../cppjs.config.js | 11 +- .../package.json | 30 + .../cppjs-package-sqlite3-android/.npmignore | 7 + .../CHANGELOG.md | 7 + .../cppjs-package-sqlite3-android/LICENSE | 91 + .../cppjs-package-sqlite3-android/README.md | 50 + .../cppjs.build.js | 25 + .../cppjs.config.js | 5 +- .../package.json | 30 + .../.npmignore | 7 + .../CHANGELOG.md | 7 + .../LICENSE | 91 + .../README.md | 50 + .../cppjs.build.js | 19 + .../cppjs.config.js | 21 + .../package.json | 13 +- .../cppjs-package-sqlite3-ios/.npmignore | 7 + .../cppjs-package-sqlite3-ios/CHANGELOG.md | 7 + .../cppjs-package-sqlite3-ios/LICENSE | 91 + .../cppjs-package-sqlite3-ios/README.md | 50 + .../cppjs-package-sqlite3-ios}/cppjs.build.js | 3 - .../cppjs.config.js | 2 +- .../cppjs-package-sqlite3-ios/package.json | 30 + .../cppjs.config.js | 14 + .../package.json | 24 + .../.npmignore | 7 + .../CHANGELOG.md | 7 + .../LICENSE | 91 + .../README.md | 0 .../cppjs.build.js | 12 + .../cppjs.config.js | 21 + .../package.json | 30 + .../cppjs-package-sqlite3-wasm/.npmignore | 7 + .../cppjs-package-sqlite3-wasm/CHANGELOG.md | 7 + .../cppjs-package-sqlite3-wasm/LICENSE | 91 + .../cppjs-package-sqlite3-wasm/README.md | 50 + .../cppjs-package-sqlite3-wasm/cppjs.build.js | 12 + .../cppjs.config.js | 18 + .../cppjs-package-sqlite3-wasm/package.json | 30 + .../cppjs-package-sqlite3/cppjs.config.js | 14 + .../cppjs-package-sqlite3/package.json | 25 + .../.npmignore | 7 + .../LICENSE | 0 .../README.md | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 25 + .../package.json | 31 + .../cppjs-package-tiff-android/.npmignore | 7 + .../cppjs-package-tiff-android/LICENSE | 9 + .../cppjs-package-tiff-android/README.md | 50 + .../cppjs-package-tiff-android/cppjs.build.js | 8 + .../cppjs.config.js | 22 + .../cppjs-package-tiff-android/package.json | 31 + .../.npmignore | 7 + .../LICENSE | 9 + .../README.md | 50 + .../cppjs-package-tiff.podspec | 0 .../cppjs.build.js | 8 + .../cppjs.config.js | 25 + .../package.json | 31 + .../cppjs-package-tiff-ios/.npmignore | 7 + .../cppjs-package-tiff-ios/LICENSE | 9 + .../cppjs-package-tiff-ios/README.md | 50 + .../cppjs-package-tiff.podspec | 13 + .../cppjs-package-tiff-ios/cppjs.build.js | 8 + .../cppjs-package-tiff-ios/cppjs.config.js | 22 + .../cppjs-package-tiff-ios}/package.json | 30 +- .../cppjs-package-tiff-multithread/.npmignore | 7 + .../cppjs-package-tiff-multithread/LICENSE | 9 + .../cppjs-package-tiff-multithread/README.md | 50 + .../cppjs.build.js | 8 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 7 + .../LICENSE | 9 + .../README.md | 50 + .../cppjs.build.js | 8 + .../cppjs.config.js | 25 + .../package.json | 31 + .../cppjs-package-tiff-wasm/.npmignore | 7 + .../cppjs-package-tiff-wasm/LICENSE | 9 + .../cppjs-package-tiff-wasm/README.md | 50 + .../cppjs-package-tiff-wasm/cppjs.build.js | 8 + .../cppjs-package-tiff-wasm/cppjs.config.js | 22 + .../cppjs-package-tiff-wasm/package.json | 31 + .../cppjs-package-tiff/.npmignore | 7 + .../cppjs-package-tiff/CHANGELOG.md | 0 .../cppjs-package-tiff/LICENSE | 9 + .../cppjs-package-tiff/README.md | 50 + .../cppjs-package-tiff.podspec | 13 + .../cppjs-package-tiff/cppjs.build.js | 8 + .../cppjs-package-tiff/cppjs.config.js | 14 + .../cppjs-package-tiff/package.json | 23 + .../.npmignore | 7 + .../LICENSE | 0 .../README.md | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-webp-android/.npmignore | 7 + .../cppjs-package-webp-android/LICENSE | 24 + .../cppjs-package-webp-android/README.md | 50 + .../cppjs-package-webp-android/cppjs.build.js | 15 + .../cppjs.config.js | 17 + .../cppjs-package-webp-android/package.json | 28 + .../.npmignore | 7 + .../LICENSE | 24 + .../README.md | 50 + .../cppjs-package-webp.podspec | 0 .../cppjs.build.js | 15 + .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-webp-ios/.npmignore | 7 + .../cppjs-package-webp-ios/LICENSE | 24 + .../cppjs-package-webp-ios/README.md | 50 + .../cppjs-package-webp.podspec | 13 + .../cppjs-package-webp-ios/cppjs.build.js | 15 + .../cppjs-package-webp-ios/cppjs.config.js | 17 + .../cppjs-package-webp-ios}/package.json | 28 +- .../cppjs-package-webp-multithread/.npmignore | 7 + .../cppjs-package-webp-multithread/LICENSE | 24 + .../cppjs-package-webp-multithread/README.md | 50 + .../cppjs.build.js | 15 + .../cppjs.config.js | 14 + .../package.json | 23 + .../.npmignore | 7 + .../LICENSE | 24 + .../README.md | 50 + .../cppjs.build.js | 15 + .../cppjs.config.js | 20 + .../package.json | 28 + .../cppjs-package-webp-wasm/.npmignore | 7 + .../cppjs-package-webp-wasm/LICENSE | 24 + .../cppjs-package-webp-wasm/README.md | 50 + .../cppjs-package-webp-wasm/cppjs.build.js | 15 + .../cppjs-package-webp-wasm/cppjs.config.js | 17 + .../cppjs-package-webp-wasm/package.json | 28 + .../cppjs-package-webp/.npmignore | 7 + .../cppjs-package-webp/CHANGELOG.md | 0 .../cppjs-package-webp/LICENSE | 24 + .../cppjs-package-webp/README.md | 50 + .../cppjs-package-webp.podspec | 13 + .../cppjs-package-webp/cppjs.build.js | 15 + .../cppjs-package-webp/cppjs.config.js | 14 + .../cppjs-package-webp/package.json | 23 + .../.npmignore | 7 + .../CHANGELOG.md | 7 + .../LICENSE | 0 .../README.md | 50 + .../assets/CMakeLists.txt | 0 .../cppjs.build.js | 0 .../cppjs.config.js | 7 +- .../package.json | 11 +- .../cppjs-package-zlib-android/.npmignore | 7 + .../cppjs-package-zlib-android/CHANGELOG.md | 7 + .../cppjs-package-zlib-android/LICENSE | 23 + .../cppjs-package-zlib-android/README.md | 50 + .../assets/CMakeLists.txt | 234 ++ .../cppjs-package-zlib-android/cppjs.build.js | 6 + .../cppjs.config.js | 0 .../cppjs-package-zlib-android/package.json | 26 + .../.npmignore | 7 + .../CHANGELOG.md | 7 + .../LICENSE | 23 + .../README.md | 50 + .../assets/CMakeLists.txt | 234 ++ .../cppjs.build.js | 6 + .../cppjs.config.js | 15 + .../package.json | 26 + .../cppjs-package-zlib-ios/.npmignore | 7 + .../cppjs-package-zlib-ios/CHANGELOG.md | 7 + .../cppjs-package-zlib-ios/LICENSE | 23 + .../cppjs-package-zlib-ios}/README.md | 2 +- .../assets/CMakeLists.txt | 234 ++ .../cppjs-package-zlib-ios/cppjs.build.js | 6 + .../cppjs-package-zlib-ios}/cppjs.config.js | 2 +- .../cppjs-package-zlib-ios/package.json | 26 + .../cppjs.config.js | 14 + .../package.json | 24 + .../.npmignore | 7 + .../CHANGELOG.md | 7 + .../LICENSE | 23 + .../README.md | 50 + .../assets/CMakeLists.txt | 234 ++ .../cppjs.build.js | 6 + .../cppjs.config.js | 15 + .../package.json | 26 + .../cppjs-package-zlib-wasm/.npmignore | 7 + .../cppjs-package-zlib-wasm/CHANGELOG.md | 7 + .../cppjs-package-zlib-wasm/LICENSE | 23 + .../cppjs-package-zlib-wasm/README.md | 50 + .../assets/CMakeLists.txt | 234 ++ .../cppjs-package-zlib-wasm/cppjs.build.js | 6 + .../cppjs-package-zlib-wasm}/cppjs.config.js | 3 +- .../cppjs-package-zlib-wasm/package.json | 26 + .../cppjs-package-zlib/cppjs.config.js | 14 + .../cppjs-package-zlib/package.json | 24 + .../cppjs-plugin-metro/CHANGELOG.md | 0 .../cppjs-plugin-metro/README.md | 0 .../cppjs-plugin-metro/package.json | 0 .../cppjs-plugin-metro/src/metro-plugin.cjs | 0 .../src/metro-transformer.cjs | 0 .../.npmignore | 0 .../CHANGELOG.md | 0 .../README.md | 0 .../ios/CppjsModule.h | 0 .../ios/CppjsModule.mm | 0 .../package.json | 0 .../react-native-cppjs-ios-helper.podspec | 0 .../cppjs-plugin-react-native/.gitignore | 0 .../cppjs-plugin-react-native/.npmignore | 0 .../cppjs-plugin-react-native/CHANGELOG.md | 0 .../cppjs-plugin-react-native/README.md | 0 .../android/build.gradle | 0 .../android/src/main/AndroidManifest.xml | 0 .../main/java/com/jsi/lib/RNJsiLibModule.java | 0 .../java/com/jsi/lib/RNJsiLibPackage.java | 0 .../src/main/java/com/jsi/lib/Utils.java | 0 .../cpp/CMakeLists.txt | 0 .../cpp/src/JSI_module.cpp | 0 .../cppjs.config.mjs | 0 .../cppjs-plugin-react-native/js/index.js | 0 .../cppjs-plugin-react-native/package.json | 0 .../react-native-cppjs.podspec | 0 .../script/build_android.js | 0 .../script/build_ios.js | 0 .../script/build_js.js | 0 .../script/getCliPath.js | 0 .../cppjs-plugin-rollup/.npmignore | 0 .../cppjs-plugin-rollup/CHANGELOG.md | 0 .../cppjs-plugin-rollup/README.md | 0 .../cppjs-plugin-rollup/index.js | 8 + .../cppjs-plugin-rollup/package.json | 0 .../cppjs-plugin-vite/.npmignore | 0 .../cppjs-plugin-vite/CHANGELOG.md | 0 .../cppjs-plugin-vite/README.md | 0 .../cppjs-plugin-vite/index.js | 4 + .../cppjs-plugin-vite/package.json | 0 .../cppjs-plugin-webpack-loader/.npmignore | 0 .../cppjs-plugin-webpack-loader/CHANGELOG.md | 0 .../cppjs-plugin-webpack-loader/README.md | 0 .../cppjs-plugin-webpack-loader/index.js | 0 .../cppjs-plugin-webpack-loader/package.json | 0 .../cppjs-plugin-webpack/.npmignore | 0 .../cppjs-plugin-webpack/CHANGELOG.md | 0 .../cppjs-plugin-webpack/README.md | 0 .../cppjs-plugin-webpack/index.js | 9 + .../cppjs-plugin-webpack/package.json | 0 .../cppjs.config.mjs | 46 + .../package.json | 36 + .../src/index.mjs | 22 + .../src/native | 1 + .../CHANGELOG.md | 0 .../README.md | 0 .../cppjs.config.mjs | 48 + .../package.json | 37 + .../src/index.js | 20 + .../src/index.mjs | 20 + .../src/native | 1 + .../.gitignore | 0 .../cppjs.config.mjs | 31 + .../e2e/cppjs.spec.cjs | 0 .../index.js | 13 + .../package.json | 48 + .../playwright.dev.config.cjs | 0 .../src/native/native.cpp | 3 + .../src/native/native.h | 12 + .../wrangler.toml | 0 .../cppjs-playground-config/native/native.cpp | 310 ++ .../cppjs-playground-config/native/native.h | 15 + .../.bundle/config | 0 .../.eslintrc.js | 0 .../.gitignore | 0 .../.prettierrc.js | 0 .../CHANGELOG.md | 0 .../Gemfile | 0 .../README.md | 0 .../__tests__/App.test.tsx | 0 .../android/app/build.gradle | 0 .../android/app/debug.keystore | Bin .../android/app/proguard-rules.pro | 0 .../android/app/src/debug/AndroidManifest.xml | 0 .../android/app/src/main/AndroidManifest.xml | 0 .../src/main/assets/cppjs/certs/cacert.pem | 3480 +++++++++++++++++ .../src/main/assets/cppjs/gdal/GDALLogoBW.svg | 138 + .../main/assets/cppjs/gdal/GDALLogoColor.svg | 126 + .../src/main/assets/cppjs/gdal/GDALLogoGS.svg | 126 + .../src/main/assets/cppjs/gdal/LICENSE.TXT | 467 +++ .../main/assets/cppjs/gdal/MM_m_idofic.csv | 321 ++ .../main/assets/cppjs/gdal/cubewerx_extra.wkt | 48 + .../src/main/assets/cppjs/gdal/default.rsc | Bin 0 -> 463632 bytes .../app/src/main/assets/cppjs/gdal/ecw_cs.wkt | 1453 +++++++ .../app/src/main/assets/cppjs/gdal/epsg.wkt | 1 + .../cppjs/gdal/esri_StatePlane_extra.wkt | 631 +++ .../src/main/assets/cppjs/gdal/gdalicon.png | Bin 0 -> 2021 bytes .../cppjs/gdal/gdalinfo_output.schema.json | 346 ++ .../gdal/gdalmdiminfo_output.schema.json | 321 ++ .../main/assets/cppjs/gdal/gdaltileindex.xsd | 253 ++ .../src/main/assets/cppjs/gdal/gdalvrt.xsd | 887 +++++ .../app/src/main/assets/cppjs/gdal/gfs.xsd | 246 ++ .../main/assets/cppjs/gdal/gml_registry.xml | 117 + .../main/assets/cppjs/gdal/gml_registry.xsd | 66 + .../main/assets/cppjs/gdal/grib2_center.csv | 251 ++ .../main/assets/cppjs/gdal/grib2_process.csv | 102 + .../assets/cppjs/gdal/grib2_subcenter.csv | 63 + .../assets/cppjs/gdal/grib2_table_4_2_0_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_13.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_14.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_15.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_16.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_17.csv | 11 + .../cppjs/gdal/grib2_table_4_2_0_18.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_19.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_190.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_191.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_2.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_20.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_21.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_3.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_5.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_6.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_7.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_0.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_191.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_2.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_3.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_1_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_1_1.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_1_2.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_20_0.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_20_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_20_2.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_3.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_5.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_6.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_3_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_3_1.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_3_2.csv | 28 + .../assets/cppjs/gdal/grib2_table_4_2_3_3.csv | 8 + .../assets/cppjs/gdal/grib2_table_4_2_3_4.csv | 14 + .../assets/cppjs/gdal/grib2_table_4_2_3_5.csv | 11 + .../assets/cppjs/gdal/grib2_table_4_2_3_6.csv | 11 + .../assets/cppjs/gdal/grib2_table_4_2_4_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_4_10.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_2.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_3.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_5.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_6.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_7.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_8.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_9.csv | 261 ++ .../gdal/grib2_table_4_2_local_Canada.csv | 5 + .../cppjs/gdal/grib2_table_4_2_local_HPC.csv | 2 + .../cppjs/gdal/grib2_table_4_2_local_MRMS.csv | 175 + .../cppjs/gdal/grib2_table_4_2_local_NCEP.csv | 401 ++ .../cppjs/gdal/grib2_table_4_2_local_NDFD.csv | 38 + .../gdal/grib2_table_4_2_local_index.csv | 7 + .../assets/cppjs/gdal/grib2_table_4_5.csv | 261 ++ .../cppjs/gdal/grib2_table_versions.csv | 3 + .../src/main/assets/cppjs/gdal/gt_datum.csv | 229 ++ .../src/main/assets/cppjs/gdal/gt_ellips.csv | 24 + .../app/src/main/assets/cppjs/gdal/header.dxf | 1124 ++++++ .../gdal/inspire_cp_BasicPropertyUnit.gfs | 57 + .../gdal/inspire_cp_CadastralBoundary.gfs | 60 + .../cppjs/gdal/inspire_cp_CadastralParcel.gfs | 81 + .../cppjs/gdal/inspire_cp_CadastralZoning.gfs | 161 + .../assets/cppjs/gdal/jpfgdgml_AdmArea.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs | 49 + .../main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs | 59 + .../main/assets/cppjs/gdal/jpfgdgml_BldA.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_BldL.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_CommBdry.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_CommPt.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_Cstline.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_ElevPt.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_GCP.gfs | 94 + .../assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_RailCL.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs | 44 + .../assets/cppjs/gdal/jpfgdgml_RdArea.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_RdCompt.gfs | 59 + .../main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs | 49 + .../main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_SBArea.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_SBBdry.gfs | 44 + .../main/assets/cppjs/gdal/jpfgdgml_WA.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_WL.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs | 54 + .../src/main/assets/cppjs/gdal/nitf_spec.xml | 3290 ++++++++++++++++ .../src/main/assets/cppjs/gdal/nitf_spec.xsd | 173 + .../cppjs/gdal/ogrinfo_output.schema.json | 528 +++ .../app/src/main/assets/cppjs/gdal/ogrvrt.xsd | 530 +++ .../src/main/assets/cppjs/gdal/osmconf.ini | 134 + .../src/main/assets/cppjs/gdal/ozi_datum.csv | 131 + .../src/main/assets/cppjs/gdal/ozi_ellips.csv | 35 + .../src/main/assets/cppjs/gdal/pci_datum.txt | 530 +++ .../src/main/assets/cppjs/gdal/pci_ellips.txt | 129 + .../main/assets/cppjs/gdal/pdfcomposition.xsd | 705 ++++ .../main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs | 1455 +++++++ .../assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs | 86 + .../main/assets/cppjs/gdal/ruian_vf_st_v1.gfs | 1489 +++++++ .../main/assets/cppjs/gdal/ruian_vf_v1.gfs | 2126 ++++++++++ .../main/assets/cppjs/gdal/s57agencies.csv | 249 ++ .../main/assets/cppjs/gdal/s57attributes.csv | 484 +++ .../assets/cppjs/gdal/s57expectedinput.csv | 1008 +++++ .../assets/cppjs/gdal/s57objectclasses.csv | 287 ++ .../src/main/assets/cppjs/gdal/seed_2d.dgn | Bin 0 -> 9216 bytes .../src/main/assets/cppjs/gdal/seed_3d.dgn | Bin 0 -> 2048 bytes .../src/main/assets/cppjs/gdal/stateplane.csv | 259 ++ .../assets/cppjs/gdal/template_tiles.mapml | 28 + .../gdal/tms_LINZAntarticaMapTileGrid.json | 190 + .../assets/cppjs/gdal/tms_MapML_APSTILE.json | 268 ++ .../assets/cppjs/gdal/tms_MapML_CBMTILE.json | 346 ++ .../main/assets/cppjs/gdal/tms_NZTM2000.json | 243 ++ .../src/main/assets/cppjs/gdal/trailer.dxf | 434 ++ .../app/src/main/assets/cppjs/gdal/vdv452.xml | 351 ++ .../app/src/main/assets/cppjs/gdal/vdv452.xsd | 47 + .../android/app/src/main/assets/cppjs/proj/CH | 22 + .../app/src/main/assets/cppjs/proj/GL27 | 23 + .../app/src/main/assets/cppjs/proj/ITRF2000 | 24 + .../app/src/main/assets/cppjs/proj/ITRF2008 | 94 + .../app/src/main/assets/cppjs/proj/ITRF2014 | 55 + .../app/src/main/assets/cppjs/proj/ITRF2020 | 91 + .../cppjs/proj/deformation_model.schema.json | 582 +++ .../app/src/main/assets/cppjs/proj/nad.lst | 142 + .../app/src/main/assets/cppjs/proj/nad27 | 810 ++++ .../app/src/main/assets/cppjs/proj/nad83 | 745 ++++ .../src/main/assets/cppjs/proj/other.extra | 53 + .../app/src/main/assets/cppjs/proj/proj.db | Bin 0 -> 9359360 bytes .../app/src/main/assets/cppjs/proj/proj.ini | 59 + .../assets/cppjs/proj/projjson.schema.json | 1174 ++++++ .../cppjs/proj/triangulation.schema.json | 214 + .../app/src/main/assets/cppjs/proj/world | 214 + .../cppjsSampleReactNativeCLI/MainActivity.kt | 0 .../MainApplication.kt | 0 .../res/drawable/rn_edit_text_material.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../res/mipmap-hdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../res/mipmap-mdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../res/mipmap-xhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/styles.xml | 0 .../android/build.gradle | 0 .../android/gradle.properties | 0 .../android/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../android/gradlew | 0 .../android/gradlew.bat | 0 .../android/settings.gradle | 0 .../app.json | 0 .../babel.config.js | 0 .../ci/.cppjs/build/bridge/native.i.cpp | 0 .../build/bridge/native.i.cpp.exports.json | 0 .../ci/.cppjs/build/interface/native.i | 0 .../ci/.cppjs/cache.json | 12 + .../cppjs.config.mjs | 37 + .../index.js | 0 .../ios/.xcode.env | 0 .../ios/Podfile | 0 .../ios/Podfile.lock | 1818 +++++++++ .../project.pbxproj | 0 .../cppjsSampleReactNativeCLI.xcscheme | 0 .../contents.xcworkspacedata | 0 .../cppjsSampleReactNativeCLI/AppDelegate.h | 0 .../cppjsSampleReactNativeCLI/AppDelegate.mm | 0 .../AppIcon.appiconset/Contents.json | 0 .../Images.xcassets/Contents.json | 0 .../ios/cppjsSampleReactNativeCLI/Info.plist | 0 .../LaunchScreen.storyboard | 0 .../PrivacyInfo.xcprivacy | 0 .../ios/cppjsSampleReactNativeCLI/main.m | 0 .../cppjsSampleReactNativeCLITests/Info.plist | 0 .../cppjsSampleReactNativeCLITests.m | 0 .../jest.config.js | 0 .../maestro.yaml | 0 .../metro.config.js | 0 .../package.json | 72 + .../src/App.tsx | 0 .../src/native/native.cpp | 56 + .../src/native/native.h | 0 .../tsconfig.json | 0 .../.bundle/config | 2 + .../.eslintrc.js | 4 + .../.gitignore | 85 + .../.prettierrc.js | 7 + .../CHANGELOG.md | 29 + .../Gemfile | 9 + .../README.md | 55 + .../__tests__/App.test.tsx | 17 + .../android/app/build.gradle | 119 + .../android/app/debug.keystore | Bin .../android/app/proguard-rules.pro | 10 + .../android/app/src/debug/AndroidManifest.xml | 9 + .../android/app/src/main/AndroidManifest.xml | 26 + .../src/main/assets/cppjs/certs/cacert.pem | 3480 +++++++++++++++++ .../src/main/assets/cppjs/gdal/GDALLogoBW.svg | 138 + .../main/assets/cppjs/gdal/GDALLogoColor.svg | 126 + .../src/main/assets/cppjs/gdal/GDALLogoGS.svg | 126 + .../src/main/assets/cppjs/gdal/LICENSE.TXT | 467 +++ .../main/assets/cppjs/gdal/MM_m_idofic.csv | 321 ++ .../main/assets/cppjs/gdal/cubewerx_extra.wkt | 48 + .../src/main/assets/cppjs/gdal/default.rsc | Bin 0 -> 463632 bytes .../app/src/main/assets/cppjs/gdal/ecw_cs.wkt | 1453 +++++++ .../app/src/main/assets/cppjs/gdal/epsg.wkt | 1 + .../cppjs/gdal/esri_StatePlane_extra.wkt | 631 +++ .../src/main/assets/cppjs/gdal/gdalicon.png | Bin 0 -> 2021 bytes .../cppjs/gdal/gdalinfo_output.schema.json | 346 ++ .../gdal/gdalmdiminfo_output.schema.json | 321 ++ .../main/assets/cppjs/gdal/gdaltileindex.xsd | 253 ++ .../src/main/assets/cppjs/gdal/gdalvrt.xsd | 887 +++++ .../app/src/main/assets/cppjs/gdal/gfs.xsd | 246 ++ .../main/assets/cppjs/gdal/gml_registry.xml | 117 + .../main/assets/cppjs/gdal/gml_registry.xsd | 66 + .../main/assets/cppjs/gdal/grib2_center.csv | 251 ++ .../main/assets/cppjs/gdal/grib2_process.csv | 102 + .../assets/cppjs/gdal/grib2_subcenter.csv | 63 + .../assets/cppjs/gdal/grib2_table_4_2_0_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_13.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_14.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_15.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_16.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_17.csv | 11 + .../cppjs/gdal/grib2_table_4_2_0_18.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_19.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_190.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_191.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_2.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_20.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_0_21.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_3.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_5.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_6.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_0_7.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_0.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_191.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_2.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_3.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_10_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_1_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_1_1.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_1_2.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_20_0.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_20_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_20_2.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_3.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_5.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_2_6.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_3_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_3_1.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_3_2.csv | 28 + .../assets/cppjs/gdal/grib2_table_4_2_3_3.csv | 8 + .../assets/cppjs/gdal/grib2_table_4_2_3_4.csv | 14 + .../assets/cppjs/gdal/grib2_table_4_2_3_5.csv | 11 + .../assets/cppjs/gdal/grib2_table_4_2_3_6.csv | 11 + .../assets/cppjs/gdal/grib2_table_4_2_4_0.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_1.csv | 261 ++ .../cppjs/gdal/grib2_table_4_2_4_10.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_2.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_3.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_4.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_5.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_6.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_7.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_8.csv | 261 ++ .../assets/cppjs/gdal/grib2_table_4_2_4_9.csv | 261 ++ .../gdal/grib2_table_4_2_local_Canada.csv | 5 + .../cppjs/gdal/grib2_table_4_2_local_HPC.csv | 2 + .../cppjs/gdal/grib2_table_4_2_local_MRMS.csv | 175 + .../cppjs/gdal/grib2_table_4_2_local_NCEP.csv | 401 ++ .../cppjs/gdal/grib2_table_4_2_local_NDFD.csv | 38 + .../gdal/grib2_table_4_2_local_index.csv | 7 + .../assets/cppjs/gdal/grib2_table_4_5.csv | 261 ++ .../cppjs/gdal/grib2_table_versions.csv | 3 + .../src/main/assets/cppjs/gdal/gt_datum.csv | 229 ++ .../src/main/assets/cppjs/gdal/gt_ellips.csv | 24 + .../app/src/main/assets/cppjs/gdal/header.dxf | 1124 ++++++ .../gdal/inspire_cp_BasicPropertyUnit.gfs | 57 + .../gdal/inspire_cp_CadastralBoundary.gfs | 60 + .../cppjs/gdal/inspire_cp_CadastralParcel.gfs | 81 + .../cppjs/gdal/inspire_cp_CadastralZoning.gfs | 161 + .../assets/cppjs/gdal/jpfgdgml_AdmArea.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs | 49 + .../main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs | 59 + .../main/assets/cppjs/gdal/jpfgdgml_BldA.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_BldL.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_CommBdry.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_CommPt.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_Cstline.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_ElevPt.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_GCP.gfs | 94 + .../assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_RailCL.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs | 44 + .../assets/cppjs/gdal/jpfgdgml_RdArea.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_RdCompt.gfs | 59 + .../main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs | 59 + .../assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs | 49 + .../main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs | 49 + .../assets/cppjs/gdal/jpfgdgml_SBArea.gfs | 54 + .../assets/cppjs/gdal/jpfgdgml_SBBdry.gfs | 44 + .../main/assets/cppjs/gdal/jpfgdgml_WA.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_WL.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs | 54 + .../main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs | 54 + .../src/main/assets/cppjs/gdal/nitf_spec.xml | 3290 ++++++++++++++++ .../src/main/assets/cppjs/gdal/nitf_spec.xsd | 173 + .../cppjs/gdal/ogrinfo_output.schema.json | 528 +++ .../app/src/main/assets/cppjs/gdal/ogrvrt.xsd | 530 +++ .../src/main/assets/cppjs/gdal/osmconf.ini | 134 + .../src/main/assets/cppjs/gdal/ozi_datum.csv | 131 + .../src/main/assets/cppjs/gdal/ozi_ellips.csv | 35 + .../src/main/assets/cppjs/gdal/pci_datum.txt | 530 +++ .../src/main/assets/cppjs/gdal/pci_ellips.txt | 129 + .../main/assets/cppjs/gdal/pdfcomposition.xsd | 705 ++++ .../main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs | 1455 +++++++ .../assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs | 86 + .../main/assets/cppjs/gdal/ruian_vf_st_v1.gfs | 1489 +++++++ .../main/assets/cppjs/gdal/ruian_vf_v1.gfs | 2126 ++++++++++ .../main/assets/cppjs/gdal/s57agencies.csv | 249 ++ .../main/assets/cppjs/gdal/s57attributes.csv | 484 +++ .../assets/cppjs/gdal/s57expectedinput.csv | 1008 +++++ .../assets/cppjs/gdal/s57objectclasses.csv | 287 ++ .../src/main/assets/cppjs/gdal/seed_2d.dgn | Bin 0 -> 9216 bytes .../src/main/assets/cppjs/gdal/seed_3d.dgn | Bin 0 -> 2048 bytes .../src/main/assets/cppjs/gdal/stateplane.csv | 259 ++ .../assets/cppjs/gdal/template_tiles.mapml | 28 + .../gdal/tms_LINZAntarticaMapTileGrid.json | 190 + .../assets/cppjs/gdal/tms_MapML_APSTILE.json | 268 ++ .../assets/cppjs/gdal/tms_MapML_CBMTILE.json | 346 ++ .../main/assets/cppjs/gdal/tms_NZTM2000.json | 243 ++ .../src/main/assets/cppjs/gdal/trailer.dxf | 434 ++ .../app/src/main/assets/cppjs/gdal/vdv452.xml | 351 ++ .../app/src/main/assets/cppjs/gdal/vdv452.xsd | 47 + .../android/app/src/main/assets/cppjs/proj/CH | 22 + .../app/src/main/assets/cppjs/proj/GL27 | 23 + .../app/src/main/assets/cppjs/proj/ITRF2000 | 24 + .../app/src/main/assets/cppjs/proj/ITRF2008 | 94 + .../app/src/main/assets/cppjs/proj/ITRF2014 | 55 + .../app/src/main/assets/cppjs/proj/ITRF2020 | 91 + .../cppjs/proj/deformation_model.schema.json | 582 +++ .../app/src/main/assets/cppjs/proj/nad.lst | 142 + .../app/src/main/assets/cppjs/proj/nad27 | 810 ++++ .../app/src/main/assets/cppjs/proj/nad83 | 745 ++++ .../src/main/assets/cppjs/proj/other.extra | 53 + .../app/src/main/assets/cppjs/proj/proj.db | Bin 0 -> 9359360 bytes .../app/src/main/assets/cppjs/proj/proj.ini | 59 + .../assets/cppjs/proj/projjson.schema.json | 1174 ++++++ .../cppjs/proj/triangulation.schema.json | 214 + .../app/src/main/assets/cppjs/proj/world | 214 + .../cppjsSampleReactNativeCLI/MainActivity.kt | 22 + .../MainApplication.kt | 44 + .../res/drawable/rn_edit_text_material.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3056 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5024 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2096 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2858 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4569 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7098 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6464 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10676 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9250 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15523 bytes .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/styles.xml | 9 + .../android/build.gradle | 21 + .../android/gradle.properties | 39 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../android/gradlew | 252 ++ .../android/gradlew.bat | 94 + .../android/settings.gradle | 6 + .../app.json | 4 + .../babel.config.js | 3 + .../ci/.cppjs/build/bridge/native.i.cpp | 224 ++ .../build/bridge/native.i.cpp.exports.json | 1 + .../ci/.cppjs/build/interface/native.i | 15 + .../ci/.cppjs/cache.json | 12 + .../cppjs.config.mjs | 37 + .../index.js | 9 + .../ios/.xcode.env | 0 .../ios/Podfile | 40 + .../ios/Podfile.lock | 1873 +++++++++ .../project.pbxproj | 705 ++++ .../cppjsSampleReactNativeCLI.xcscheme | 88 + .../contents.xcworkspacedata | 10 + .../cppjsSampleReactNativeCLI/AppDelegate.h | 6 + .../cppjsSampleReactNativeCLI/AppDelegate.mm | 31 + .../AppIcon.appiconset/Contents.json | 53 + .../Images.xcassets/Contents.json | 6 + .../ios/cppjsSampleReactNativeCLI/Info.plist | 52 + .../LaunchScreen.storyboard | 47 + .../PrivacyInfo.xcprivacy | 37 + .../ios/cppjsSampleReactNativeCLI/main.m | 10 + .../cppjsSampleReactNativeCLITests/Info.plist | 24 + .../cppjsSampleReactNativeCLITests.m | 66 + .../jest.config.js | 3 + .../maestro.yaml | 4 + .../metro.config.js | 18 + .../package.json | 72 + .../src/App.tsx | 45 + .../src/native/native.cpp | 3 + .../src/native/native.h | 0 .../tsconfig.json | 3 + .../cppjs-playground-web-rspack}/.gitignore | 0 .../cppjs.config.mjs | 47 + .../e2e/cppjs.spec.cjs | 0 .../cppjs-playground-web-rspack}/index.html | 0 .../cppjs-playground-web-rspack/package.json | 53 + .../playwright.dev.config.cjs | 0 .../playwright.prod.config.cjs | 0 .../rspack.config.mjs | 130 + .../cppjs-playground-web-rspack/serve.json | 17 + .../cppjs-playground-web-rspack}/src/App.css | 0 .../cppjs-playground-web-rspack/src/App.jsx | 34 + .../src/assets/react.svg | 0 .../src/index.css | 0 .../cppjs-playground-web-rspack}/src/main.jsx | 0 .../cppjs-playground-web-rspack/src/native | 1 + .../cppjs-playground-web-vanilla}/.gitignore | 0 .../CHANGELOG.md | 0 .../cppjs-playground-web-vanilla}/README.md | 0 .../cppjs.config.mjs | 48 + .../e2e/cppjs.spec.cjs | 0 .../cppjs-playground-web-vanilla/index.html | 42 + .../cppjs-playground-web-vanilla/package.json | 40 + .../playwright.prod.config.cjs | 0 .../cppjs-playground-web-vanilla/serve.json | 17 + .../cppjs-playground-web-vanilla/src/native | 1 + .../.gitignore | 0 .../cppjs.config.js | 48 + .../e2e/cppjs.spec.cjs | 0 .../index.html | 0 .../package.json | 45 + .../playwright.dev.config.cjs | 0 .../playwright.prod.config.cjs | 0 .../public/vite.svg | 0 .../serve.json | 17 + .../src/App.vue | 27 + .../src/main.js | 0 .../src/native | 1 + .../src/style.css | 0 .../vite.config.js | 0 .../cppjs-playground-web-vite/.gitignore | 29 + .../cppjs-playground-web-vite/cppjs.config.js | 45 + .../e2e/cppjs.spec.cjs | 0 .../cppjs-playground-web-vite/index.html | 13 + .../cppjs-playground-web-vite/package.json | 45 + .../playwright.dev.config.cjs | 0 .../playwright.prod.config.cjs | 0 .../public/vite.svg | 0 .../cppjs-playground-web-vite/serve.json | 17 + .../cppjs-playground-web-vite/src/App.vue | 14 + .../cppjs-playground-web-vite/src/main.js | 5 + .../src/native/native.cpp | 3 + .../src/native/native.h | 12 + .../cppjs-playground-web-vite/src/style.css | 38 + .../cppjs-playground-web-vite/vite.config.js | 18 + .../.npmignore | 0 .../CHANGELOG.md | 27 + .../README.md | 32 + .../cppjs.config.mjs | 0 .../package.json | 0 .../src/index.js | 0 .../src/index.mjs | 0 .../src/native/native.cpp | 0 .../src/native/native.h | 0 .../.gitignore | 3 + .../CHANGELOG.md | 0 .../Readme.md | 0 .../cppjs.config.mjs | 0 .../e2e/cppjs.spec.cjs | 7 + .../index.js | 1 + .../package.json | 2 +- .../playwright.dev.config.cjs | 48 + .../src/native/native.cpp | 0 .../src/native/native.h | 0 .../wrangler.toml | 3 + .../cppjs-sample-lib-cmake/.gitignore | 0 .../cppjs-sample-lib-cmake/CHANGELOG.md | 0 .../cppjs-sample-lib-cmake/CMakeLists.txt | 0 .../cppjs-sample-lib-cmake/README.md | 0 .../cppjs-sample-lib-cmake/cppjs.config.js | 0 .../cppjs-sample-lib-cmake/package.json | 0 .../samplebasiccmake.h | 0 .../src/native/samplebasiccmake.cpp | 0 .../.npmignore | 7 + .../CHANGELOG.md | 0 .../README.md | 81 + ...le-lib-prebuilt-matrix-multithread.podspec | 15 + .../cppjs.config.js | 12 +- .../package.json | 27 + .../playground/Matrix.js | 0 .../playground/index.html | 0 .../src/native/Matrix.cpp | 0 .../src/native/Matrix.h | 0 .../.npmignore | 7 + .../CHANGELOG.md | 4 +- .../README.md | 0 .../cppjs-sample-lib-prebuilt-matrix.podspec | 0 .../cppjs.config.js | 0 .../package.json | 0 .../playground/Matrix.js | 19 + .../playground/index.html | 74 + .../src/native/Matrix.cpp | 17 + .../src/native/Matrix.h | 12 + .../cppjs-sample-lib-source/.gitignore | 0 .../cppjs-sample-lib-source/CHANGELOG.md | 0 .../cppjs-sample-lib-source/README.md | 0 .../cppjs-sample-lib-source/cppjs.config.js | 0 .../cppjs-sample-lib-source/package.json | 0 .../cppjs-lib-samplebasic/samplebasic.h | 0 .../.bundle/config | 2 + .../.eslintrc.js | 4 + .../.gitignore | 85 + .../.prettierrc.js | 7 + .../CHANGELOG.md | 29 + .../Gemfile | 9 + .../README.md | 55 + .../__tests__/App.test.tsx | 17 + .../android/app/build.gradle | 119 + .../android/app/debug.keystore | Bin 0 -> 2257 bytes .../android/app/proguard-rules.pro | 10 + .../android/app/src/debug/AndroidManifest.xml | 9 + .../android/app/src/main/AndroidManifest.xml | 26 + .../src/main/assets/cppjs/certs/cacert.pem | 3480 +++++++++++++++++ .../cppjsSampleReactNativeCLI/MainActivity.kt | 22 + .../MainApplication.kt | 44 + .../res/drawable/rn_edit_text_material.xml | 37 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3056 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5024 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2096 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2858 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4569 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7098 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6464 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10676 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9250 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15523 bytes .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/styles.xml | 9 + .../android/build.gradle | 21 + .../android/gradle.properties | 39 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../android/gradlew | 252 ++ .../android/gradlew.bat | 94 + .../android/settings.gradle | 6 + .../app.json | 4 + .../babel.config.js | 3 + .../ci/.cppjs/build/bridge/native.i.cpp | 224 ++ .../build/bridge/native.i.cpp.exports.json | 1 + .../ci/.cppjs/build/interface/native.i | 15 + .../ci/.cppjs/cache.json | 12 + .../cppjs.config.mjs | 6 +- .../index.js | 9 + .../ios/.xcode.env | 11 + .../ios/Podfile | 40 + .../ios/Podfile.lock | 0 .../project.pbxproj | 705 ++++ .../cppjsSampleReactNativeCLI.xcscheme | 88 + .../contents.xcworkspacedata | 10 + .../cppjsSampleReactNativeCLI/AppDelegate.h | 6 + .../cppjsSampleReactNativeCLI/AppDelegate.mm | 31 + .../AppIcon.appiconset/Contents.json | 53 + .../Images.xcassets/Contents.json | 6 + .../ios/cppjsSampleReactNativeCLI/Info.plist | 52 + .../LaunchScreen.storyboard | 47 + .../PrivacyInfo.xcprivacy | 37 + .../ios/cppjsSampleReactNativeCLI/main.m | 10 + .../cppjsSampleReactNativeCLITests/Info.plist | 24 + .../cppjsSampleReactNativeCLITests.m | 66 + .../jest.config.js | 3 + .../maestro.yaml | 4 + .../metro.config.js | 18 + .../package.json | 2 +- .../src/App.tsx | 45 + .../src/native/native.cpp | 9 + .../src/native/native.h | 0 .../tsconfig.json | 3 + .../.gitignore | 0 .../README.md | 0 .../android/.gitignore | 0 .../android/app/build.gradle | 0 .../android/app/debug.keystore | Bin 0 -> 2257 bytes .../android/app/proguard-rules.pro | 0 .../android/app/src/debug/AndroidManifest.xml | 0 .../android/app/src/main/AndroidManifest.xml | 0 .../MainActivity.kt | 0 .../MainApplication.kt | 0 .../res/drawable-hdpi/splashscreen_image.png | Bin .../res/drawable-mdpi/splashscreen_image.png | Bin .../res/drawable-xhdpi/splashscreen_image.png | Bin .../drawable-xxhdpi/splashscreen_image.png | Bin .../drawable-xxxhdpi/splashscreen_image.png | Bin .../res/drawable/rn_edit_text_material.xml | 37 + .../src/main/res/drawable/splashscreen.xml | 0 .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../mipmap-hdpi/ic_launcher_foreground.png | Bin .../res/mipmap-hdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../mipmap-mdpi/ic_launcher_foreground.png | Bin .../res/mipmap-mdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../mipmap-xhdpi/ic_launcher_foreground.png | Bin .../res/mipmap-xhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin .../app/src/main/res/values-night/colors.xml | 0 .../app/src/main/res/values/colors.xml | 0 .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/styles.xml | 0 .../android/build.gradle | 0 .../android/gradle.properties | 0 .../android/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../android/gradlew | 0 .../android/gradlew.bat | 0 .../react-settings-plugin/build.gradle.kts | 0 .../expo/plugins/ReactSettingsPlugin.kt | 0 .../android/settings.gradle | 0 .../app.json | 0 .../app/(tabs)/_layout.tsx | 0 .../app/(tabs)/explore.tsx | 0 .../app/(tabs)/index.tsx | 0 .../app/+html.tsx | 0 .../app/+not-found.tsx | 0 .../app/_layout.tsx | 0 .../assets/fonts/SpaceMono-Regular.ttf | Bin .../assets/images/adaptive-icon.png | Bin .../assets/images/favicon.png | Bin .../assets/images/icon.png | Bin .../assets/images/partial-react-logo.png | Bin .../assets/images/react-logo.png | Bin .../assets/images/react-logo@2x.png | Bin .../assets/images/react-logo@3x.png | Bin .../assets/images/splash.png | Bin .../babel.config.js | 0 .../components/Collapsible.tsx | 0 .../components/ExternalLink.tsx | 0 .../components/HelloWave.tsx | 0 .../components/ParallaxScrollView.tsx | 0 .../components/ThemedText.tsx | 0 .../components/ThemedView.tsx | 0 .../components/__tests__/ThemedText-test.tsx | 0 .../__snapshots__/ThemedText-test.tsx.snap | 0 .../components/navigation/TabBarIcon.tsx | 0 .../constants/Colors.ts | 0 .../cppjs.config.mjs | 0 .../hooks/useColorScheme.ts | 0 .../hooks/useColorScheme.web.ts | 0 .../hooks/useThemeColor.ts | 0 .../ios/.gitignore | 0 .../ios/.xcode.env | 11 + .../ios/Podfile | 0 .../ios/Podfile.lock | 0 .../ios/Podfile.properties.json | 0 .../project.pbxproj | 0 .../cppjssamplemobilereactnativeexpo.xcscheme | 0 .../contents.xcworkspacedata | 0 .../AppDelegate.h | 0 .../AppDelegate.mm | 0 .../App-Icon-1024x1024@1x.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../Images.xcassets/Contents.json | 0 .../SplashScreen.imageset/Contents.json | 0 .../SplashScreen.imageset/image.png | Bin .../Contents.json | 0 .../SplashScreenBackground.imageset/image.png | Bin .../Info.plist | 0 .../PrivacyInfo.xcprivacy | 0 .../SplashScreen.storyboard | 0 .../Supporting/Expo.plist | 0 ...plemobilereactnativeexpo-Bridging-Header.h | 0 ...jssamplemobilereactnativeexpo.entitlements | 0 .../cppjssamplemobilereactnativeexpo/main.m | 0 .../noop-file.swift | 0 .../metro.config.js | 0 .../package-lock.json | 0 .../package.json | 0 .../scripts/reset-project.js | 0 .../src/native/native.cpp | 0 .../src/native/native.h | 0 .../tsconfig.json | 0 .../cppjs-sample-web-react-rspack/.gitignore | 17 + .../CHANGELOG.md | 0 .../cppjs-sample-web-react-rspack/README.md | 0 .../cppjs.config.mjs | 0 .../e2e/cppjs.spec.cjs | 0 .../cppjs-sample-web-react-rspack/index.html | 11 + .../package.json | 0 .../playwright.dev.config.cjs | 48 + .../playwright.prod.config.cjs | 48 + .../rspack.config.mjs | 0 .../cppjs-sample-web-react-rspack/src/App.css | 41 + .../cppjs-sample-web-react-rspack/src/App.jsx | 0 .../src/assets/react.svg | 0 .../src/index.css | 70 + .../src/main.jsx | 10 + .../src/native/native.cpp | 0 .../src/native/native.h | 0 .../cppjs-sample-web-react-vite/.gitignore | 0 .../cppjs-sample-web-react-vite/CHANGELOG.md | 0 .../cppjs-sample-web-react-vite/README.md | 0 .../cppjs.config.js | 0 .../e2e/cppjs.spec.cjs | 7 + .../eslint.config.js | 0 .../cppjs-sample-web-react-vite/index.html | 0 .../cppjs-sample-web-react-vite/package.json | 0 .../playwright.dev.config.cjs | 0 .../playwright.prod.config.cjs | 0 .../public/vite.svg | 0 .../cppjs-sample-web-react-vite/src/App.css | 0 .../cppjs-sample-web-react-vite/src/App.jsx | 0 .../src/assets/react.svg | 1 + .../cppjs-sample-web-react-vite/src/index.css | 0 .../cppjs-sample-web-react-vite/src/main.jsx | 0 .../src/native/native.cpp | 0 .../src/native/native.h | 0 .../vite.config.js | 0 .../cppjs-sample-web-svelte-vite/.gitignore | 0 .../cppjs-sample-web-svelte-vite/CHANGELOG.md | 0 .../cppjs-sample-web-svelte-vite/README.md | 0 .../cppjs.config.js | 0 .../e2e/cppjs.spec.cjs | 7 + .../cppjs-sample-web-svelte-vite/index.html | 0 .../jsconfig.json | 0 .../cppjs-sample-web-svelte-vite/package.json | 0 .../playwright.dev.config.cjs | 48 + .../playwright.prod.config.cjs | 48 + .../public/vite.svg | 1 + .../src/App.svelte | 0 .../cppjs-sample-web-svelte-vite/src/app.css | 0 .../cppjs-sample-web-svelte-vite/src/main.js | 0 .../src/native/native.cpp | 0 .../src/native/native.h | 0 .../src/vite-env.d.ts | 0 .../svelte.config.js | 0 .../vite.config.js | 0 .../cppjs-sample-web-vanilla/.gitignore | 4 + .../cppjs-sample-web-vanilla/CHANGELOG.md | 27 + .../cppjs-sample-web-vanilla/README.md | 32 + .../cppjs-sample-web-vanilla/cppjs.config.mjs | 0 .../e2e/cppjs.spec.cjs | 7 + .../cppjs-sample-web-vanilla/index.html | 0 .../cppjs-sample-web-vanilla/package.json | 0 .../playwright.prod.config.cjs | 48 + .../src/native/native.cpp | 0 .../src/native/native.h | 12 + .../cppjs-sample-web-vue-vite/.gitignore | 29 + .../cppjs-sample-web-vue-vite/CHANGELOG.md | 0 .../cppjs-sample-web-vue-vite/README.md | 0 .../cppjs-sample-web-vue-vite/cppjs.config.js | 0 .../e2e/cppjs.spec.cjs | 7 + .../cppjs-sample-web-vue-vite/index.html | 13 + .../cppjs-sample-web-vue-vite/package.json | 2 +- .../playwright.dev.config.cjs | 48 + .../playwright.prod.config.cjs | 48 + .../cppjs-sample-web-vue-vite/public/vite.svg | 1 + .../cppjs-sample-web-vue-vite/serve.json | 17 + .../cppjs-sample-web-vue-vite/src/App.vue | 0 .../cppjs-sample-web-vue-vite/src/main.js | 5 + .../src/native/native.cpp | 9 + .../src/native/native.h | 12 + .../cppjs-sample-web-vue-vite/src/style.css | 38 + .../cppjs-sample-web-vue-vite/vite.config.js | 18 + package.json | 23 +- packages/cpp.js/src/actions/buildWasm.js | 68 - packages/cpp.js/src/assets/dist.cmake | 44 - packages/cpp.js/src/utils/findFiles.js | 5 - packages/cppjs-package-gdal/cppjs.config.js | 88 - packages/cppjs-package-proj/cppjs.config.js | 54 - .../cppjs-package-spatialite/cppjs.config.js | 26 - packages/cppjs-package-sqlite3/CHANGELOG.md | 20 - .../cppjs-package-sqlite3.podspec | 13 - .../cppjs-package-zlib.podspec | 13 - .../ci/.cppjs/cache.json | 12 - .../src/native/native.cpp | 9 - .../src/native/native.cpp | 9 - pnpm-lock.yaml | 3064 +++++++++++++-- pnpm-workspace.yaml | 8 +- 1664 files changed, 174980 insertions(+), 925 deletions(-) rename {packages => cppjs-core}/cpp.js/CHANGELOG.md (100%) rename {packages => cppjs-core}/cpp.js/README.md (100%) rename {packages => cppjs-core}/cpp.js/package.json (100%) rename {packages => cppjs-core}/cpp.js/src/actions/buildJs.js (93%) create mode 100644 cppjs-core/cpp.js/src/actions/buildWasm.js rename {packages => cppjs-core}/cpp.js/src/actions/createInterface.js (100%) rename {packages => cppjs-core}/cpp.js/src/actions/createLib.js (71%) rename {packages => cppjs-core}/cpp.js/src/actions/createXCFramework.js (100%) create mode 100644 cppjs-core/cpp.js/src/actions/extensions.js rename {packages => cppjs-core}/cpp.js/src/actions/getAllBridges.js (100%) rename {packages => cppjs-core}/cpp.js/src/actions/getCmakeParameters.js (68%) rename {packages => cppjs-core}/cpp.js/src/actions/getData.js (74%) rename {packages => cppjs-core}/cpp.js/src/actions/getDependLibs.js (100%) rename {packages => cppjs-core}/cpp.js/src/actions/run.js (98%) rename {packages => cppjs-core}/cpp.js/src/assets/CMakeLists.txt (94%) rename {packages => cppjs-core}/cpp.js/src/assets/browser.js (85%) rename {packages => cppjs-core}/cpp.js/src/assets/commonBridges.cpp (100%) rename {packages => cppjs-core}/cpp.js/src/assets/cppjsEmptySource.cpp (100%) create mode 100644 cppjs-core/cpp.js/src/assets/dist.cmake rename {packages => cppjs-core}/cpp.js/src/assets/ios.toolchain.cmake (100%) rename {packages => cppjs-core}/cpp.js/src/assets/node.js (100%) rename {packages => cppjs-core}/cpp.js/src/bin.js (90%) rename {packages => cppjs-core}/cpp.js/src/index.js (100%) rename {packages => cppjs-core}/cpp.js/src/integration/getCppJsScript.js (96%) rename {packages => cppjs-core}/cpp.js/src/integration/getDependFilePath.js (100%) rename {packages => cppjs-core}/cpp.js/src/state/calculateDependencyParameters.js (100%) rename {packages => cppjs-core}/cpp.js/src/state/index.js (85%) rename {packages => cppjs-core}/cpp.js/src/state/loadConfig.js (90%) rename {packages => cppjs-core}/cpp.js/src/utils/downloadAndExtractFile.js (100%) create mode 100644 cppjs-core/cpp.js/src/utils/findFiles.js rename {packages => cppjs-core}/cpp.js/src/utils/fixPackageName.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/getAbsolutePath.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/getCMakeListsFilePath.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/getOsUserAndGroupId.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/getParentPath.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/hash.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/loadJs.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/loadJson.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/pullDockerImage.js (96%) rename {packages => cppjs-core}/cpp.js/src/utils/systemKeys.js (100%) rename {packages => cppjs-core}/cpp.js/src/utils/writeJson.js (100%) rename {packages => cppjs-core}/cppjs-core-create-app/.npmignore (100%) rename {packages => cppjs-core}/cppjs-core-create-app/CHANGELOG.md (100%) rename {packages => cppjs-core}/cppjs-core-create-app/README.md (100%) rename {packages => cppjs-core}/cppjs-core-create-app/package.json (100%) rename {packages => cppjs-core}/cppjs-core-create-app/src/index.js (100%) rename {packages => cppjs-core}/cppjs-core-create-app/src/samples.js (100%) rename {packages => cppjs-core}/cppjs-core-create-app/src/utils.js (100%) rename {packages => cppjs-core}/cppjs-core-docker/CHANGELOG.md (100%) rename {packages => cppjs-core}/cppjs-core-docker/Dockerfile (84%) rename {packages => cppjs-core}/cppjs-core-docker/DraftWindowsDockerfile (100%) rename {packages => cppjs-core}/cppjs-core-docker/README.md (100%) rename {packages => cppjs-core}/cppjs-core-docker/package.json (87%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/.gitignore (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/.npmignore (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/CHANGELOG.md (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/README.md (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/cpp/CMakeLists.txt (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/cpp/src/emscripten/bind.cpp (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/cpp/src/emscripten/bind.h (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/cpp/src/emscripten/em_macros.h (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/cpp/src/emscripten/val.h (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/cpp/src/emscripten/wire.h (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/cppjs.config.mjs (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/js/embind.js (100%) rename {packages => cppjs-core}/cppjs-core-embind-jsi/package.json (100%) create mode 100644 cppjs-extensions/cppjs-extension-sample/index.mjs create mode 100644 cppjs-extensions/cppjs-extension-sample/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs-package-curl.podspec create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs-package-curl.podspec create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl/LICENSE create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl/README.md create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs-package-curl.podspec create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-curl/cppjs-package-curl/package.json rename {packages/cppjs-package-expat => cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread}/.npmignore (100%) rename {packages/cppjs-package-expat => cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-expat => cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread}/README.md (100%) rename {packages/cppjs-package-expat => cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread}/cppjs.build.js (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/package.json rename {packages/cppjs-package-geotiff => cppjs-packages/cppjs-package-expat/cppjs-package-expat-android}/.npmignore (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/README.md create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/package.json rename {packages/cppjs-package-iconv => cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread}/.npmignore (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/README.md rename {packages/cppjs-package-expat => cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread}/cppjs-package-expat.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/package.json rename {packages/cppjs-package-proj => cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios}/.npmignore (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/README.md create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs-package-expat.podspec create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.config.js rename {packages/cppjs-package-expat => cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios}/package.json (85%) rename {packages/cppjs-package-sqlite3 => cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread}/.npmignore (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/package.json rename {packages/cppjs-package-tiff => cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread}/.npmignore (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/package.json rename {packages/cppjs-package-webp => cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm}/.npmignore (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/package.json rename {packages/cppjs-package-zlib => cppjs-packages/cppjs-package-expat/cppjs-package-expat}/.npmignore (100%) rename {packages => cppjs-packages/cppjs-package-expat}/cppjs-package-expat/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat/LICENSE create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat/README.md create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs-package-expat.podspec create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-expat/cppjs-package-expat/package.json rename {packages/cppjs-package-gdal => cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread}/.npmignore (100%) rename {packages/cppjs-package-gdal => cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-gdal => cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread}/README.md (100%) rename {packages/cppjs-package-gdal => cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread}/assets/gdal_empty_file.cpp (100%) rename {packages/cppjs-package-gdal => cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread}/cppjs.build.js (98%) create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/README.md create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/assets/gdal_empty_file.cpp create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/package.json create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/assets/gdal_empty_file.cpp rename {packages/cppjs-package-gdal => cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread}/cppjs-package-gdal.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/README.md create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/assets/gdal_empty_file.cpp create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs-package-gdal.podspec create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.config.js rename {packages/cppjs-package-gdal => cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios}/package.json (60%) create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/assets/gdal_empty_file.cpp create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/assets/gdal_empty_file.cpp create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/.npmignore rename {packages => cppjs-packages/cppjs-package-gdal}/cppjs-package-gdal/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/LICENSE create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/README.md create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/assets/gdal_empty_file.cpp create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs-package-gdal.podspec create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/package.json rename {packages/cppjs-package-geos => cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread}/.npmignore (100%) rename {packages/cppjs-package-geos => cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-geos => cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread}/README.md (100%) rename {packages/cppjs-package-geos => cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread}/cppjs.build.js (100%) create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/.npmignore rename {packages/cppjs-package-iconv => cppjs-packages/cppjs-package-geos/cppjs-package-geos-android}/LICENSE (100%) create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/README.md create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/package.json create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/README.md rename {packages/cppjs-package-geos => cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread}/cppjs-package-geos.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/README.md create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs-package-geos.podspec create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.config.js rename {packages/cppjs-package-geos => cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios}/package.json (85%) create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos/.npmignore rename {packages => cppjs-packages/cppjs-package-geos}/cppjs-package-geos/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos/LICENSE create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos/README.md create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs-package-geos.podspec create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geos/cppjs-package-geos/package.json rename {packages/cppjs-sample-lib-prebuilt-matrix => cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread}/.npmignore (100%) rename {packages/cppjs-package-geotiff => cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-geotiff => cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread}/README.md (100%) rename {packages/cppjs-package-geotiff => cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread}/cppjs.build.js (84%) create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/README.md create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/package.json create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/README.md rename {packages/cppjs-package-geotiff => cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread}/cppjs-package-geotiff.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/README.md create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs-package-geotiff.podspec create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.config.js rename {packages/cppjs-package-geotiff => cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios}/package.json (75%) create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/.npmignore rename {packages => cppjs-packages/cppjs-package-geotiff}/cppjs-package-geotiff/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/LICENSE create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/README.md create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs-package-geotiff.podspec create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/package.json create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/LICENSE rename {packages/cppjs-package-iconv => cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread}/README.md (100%) rename {packages/cppjs-package-iconv => cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread}/cppjs.build.js (100%) create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/README.md create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/package.json create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/README.md rename {packages/cppjs-package-iconv => cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread}/cppjs-package-iconv.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/README.md create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs-package-iconv.podspec create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.config.js rename {packages/cppjs-package-iconv => cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios}/package.json (84%) create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/.npmignore rename {packages => cppjs-packages/cppjs-package-iconv}/cppjs-package-iconv/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/LICENSE create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/README.md create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs-package-iconv.podspec create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/assets/cacert.pem create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/assets/cacert.pem create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/assets/cacert.pem create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs-package-openssl.podspec create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/assets/cacert.pem create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs-package-openssl.podspec create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/assets/cacert.pem create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/assets/cacert.pem create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/LICENSE create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/README.md create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/assets/cacert.pem create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs-package-openssl.podspec create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/package.json create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/.npmignore rename {packages/cppjs-package-proj => cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-proj => cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread}/README.md (100%) rename {packages/cppjs-package-proj => cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread}/cppjs.build.js (100%) create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/README.md create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/package.json create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/README.md rename {packages/cppjs-package-proj => cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread}/cppjs-package-proj.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/README.md create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs-package-proj.podspec create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.config.js rename {packages/cppjs-package-proj => cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios}/package.json (78%) create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj/.npmignore rename {packages => cppjs-packages/cppjs-package-proj}/cppjs-package-proj/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj/LICENSE create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj/README.md create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs-package-proj.podspec create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-proj/cppjs-package-proj/package.json rename {packages/cppjs-package-spatialite => cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread}/.npmignore (100%) rename {packages/cppjs-package-spatialite => cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-spatialite => cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread}/README.md (100%) rename {packages/cppjs-package-spatialite => cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread}/config.sub (100%) rename {packages/cppjs-package-spatialite => cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread}/cppjs.build.js (100%) create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/README.md create mode 100755 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/config.sub create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/package.json create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/README.md create mode 100755 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/config.sub rename {packages/cppjs-package-spatialite => cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread}/cppjs-package-spatialite.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/README.md create mode 100755 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/config.sub create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs-package-spatialite.podspec create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.config.js rename {packages/cppjs-package-spatialite => cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios}/package.json (70%) create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/README.md create mode 100755 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/config.sub create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/README.md create mode 100755 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/config.sub create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/.npmignore rename {packages => cppjs-packages/cppjs-package-spatialite}/cppjs-package-spatialite/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/LICENSE create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/README.md create mode 100755 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/config.sub create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs-package-spatialite.podspec create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/package.json create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/CHANGELOG.md rename {packages/cppjs-package-sqlite3 => cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread}/LICENSE (100%) create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/cppjs.build.js rename {packages/cppjs-package-geotiff => cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread}/cppjs.config.js (50%) create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/README.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.build.js rename {packages/cppjs-package-tiff => cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android}/cppjs.config.js (66%) create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/package.json create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.config.js rename {packages/cppjs-package-sqlite3 => cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread}/package.json (72%) create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/README.md rename {packages/cppjs-package-sqlite3 => cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios}/cppjs.build.js (78%) rename {packages/cppjs-package-sqlite3 => cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios}/cppjs.config.js (80%) create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/package.json create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/LICENSE rename {packages/cppjs-package-sqlite3 => cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread}/README.md (100%) create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/package.json create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/.npmignore rename {packages/cppjs-package-tiff => cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-tiff => cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread}/README.md (100%) rename {packages/cppjs-package-tiff => cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread}/cppjs.build.js (100%) create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/README.md create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/package.json create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/README.md rename {packages/cppjs-package-tiff => cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread}/cppjs-package-tiff.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/README.md create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs-package-tiff.podspec create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.config.js rename {packages/cppjs-package-tiff => cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios}/package.json (82%) create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/.npmignore rename {packages => cppjs-packages/cppjs-package-tiff}/cppjs-package-tiff/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/LICENSE create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/README.md create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs-package-tiff.podspec create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/package.json create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/.npmignore rename {packages/cppjs-package-webp => cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread}/LICENSE (100%) rename {packages/cppjs-package-webp => cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread}/README.md (100%) rename {packages/cppjs-package-webp => cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread}/cppjs.build.js (100%) create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/README.md create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/package.json create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/README.md rename {packages/cppjs-package-webp => cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread}/cppjs-package-webp.podspec (100%) create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/LICENSE create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/README.md create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs-package-webp.podspec create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.config.js rename {packages/cppjs-package-webp => cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios}/package.json (83%) create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp/.npmignore rename {packages => cppjs-packages/cppjs-package-webp}/cppjs-package-webp/CHANGELOG.md (100%) create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp/LICENSE create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp/README.md create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs-package-webp.podspec create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-webp/cppjs-package-webp/package.json create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/CHANGELOG.md rename {packages/cppjs-package-zlib => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread}/LICENSE (100%) create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/README.md rename {packages/cppjs-package-zlib => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread}/assets/CMakeLists.txt (100%) rename {packages/cppjs-package-zlib => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread}/cppjs.build.js (100%) rename {packages/cppjs-package-geos => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread}/cppjs.config.js (66%) rename {packages/cppjs-package-zlib => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread}/package.json (74%) create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/.npmignore create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/LICENSE create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/README.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/assets/CMakeLists.txt create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/cppjs.build.js rename {packages/cppjs-package-zlib => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android}/cppjs.config.js (100%) create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/package.json create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/assets/CMakeLists.txt create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/.npmignore create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/LICENSE rename {packages/cppjs-package-zlib => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios}/README.md (98%) create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/assets/CMakeLists.txt create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/cppjs.build.js rename {packages/cppjs-package-expat => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios}/cppjs.config.js (87%) create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/package.json create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/.npmignore create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/LICENSE create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/README.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/assets/CMakeLists.txt create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.build.js create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/package.json create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/.npmignore create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/CHANGELOG.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/LICENSE create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/README.md create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/assets/CMakeLists.txt create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/cppjs.build.js rename {packages/cppjs-package-webp => cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm}/cppjs.config.js (72%) create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/package.json create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/cppjs.config.js create mode 100644 cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/package.json rename {packages => cppjs-plugins}/cppjs-plugin-metro/CHANGELOG.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-metro/README.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-metro/package.json (100%) rename {packages => cppjs-plugins}/cppjs-plugin-metro/src/metro-plugin.cjs (100%) rename {packages => cppjs-plugins}/cppjs-plugin-metro/src/metro-transformer.cjs (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native-ios-helper/.npmignore (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native-ios-helper/CHANGELOG.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native-ios-helper/README.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.h (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.mm (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native-ios-helper/package.json (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native-ios-helper/react-native-cppjs-ios-helper.podspec (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/.gitignore (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/.npmignore (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/CHANGELOG.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/README.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/android/build.gradle (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/android/src/main/AndroidManifest.xml (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibModule.java (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibPackage.java (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/Utils.java (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/cpp/CMakeLists.txt (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/cpp/src/JSI_module.cpp (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/cppjs.config.mjs (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/js/index.js (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/package.json (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/react-native-cppjs.podspec (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/script/build_android.js (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/script/build_ios.js (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/script/build_js.js (100%) rename {packages => cppjs-plugins}/cppjs-plugin-react-native/script/getCliPath.js (100%) rename {packages => cppjs-plugins}/cppjs-plugin-rollup/.npmignore (100%) rename {packages => cppjs-plugins}/cppjs-plugin-rollup/CHANGELOG.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-rollup/README.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-rollup/index.js (90%) rename {packages => cppjs-plugins}/cppjs-plugin-rollup/package.json (100%) rename {packages => cppjs-plugins}/cppjs-plugin-vite/.npmignore (100%) rename {packages => cppjs-plugins}/cppjs-plugin-vite/CHANGELOG.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-vite/README.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-vite/index.js (85%) rename {packages => cppjs-plugins}/cppjs-plugin-vite/package.json (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack-loader/.npmignore (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack-loader/CHANGELOG.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack-loader/README.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack-loader/index.js (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack-loader/package.json (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack/.npmignore (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack/CHANGELOG.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack/README.md (100%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack/index.js (76%) rename {packages => cppjs-plugins}/cppjs-plugin-webpack/package.json (100%) create mode 100644 cppjs-samples/cppjs-playground-backend-nodejs-multithread/cppjs.config.mjs create mode 100644 cppjs-samples/cppjs-playground-backend-nodejs-multithread/package.json create mode 100644 cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/index.mjs create mode 120000 cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/native rename {packages/cppjs-sample-backend-nodejs-wasm => cppjs-samples/cppjs-playground-backend-nodejs}/CHANGELOG.md (100%) rename {packages/cppjs-sample-backend-nodejs-wasm => cppjs-samples/cppjs-playground-backend-nodejs}/README.md (100%) create mode 100644 cppjs-samples/cppjs-playground-backend-nodejs/cppjs.config.mjs create mode 100644 cppjs-samples/cppjs-playground-backend-nodejs/package.json create mode 100644 cppjs-samples/cppjs-playground-backend-nodejs/src/index.js create mode 100644 cppjs-samples/cppjs-playground-backend-nodejs/src/index.mjs create mode 120000 cppjs-samples/cppjs-playground-backend-nodejs/src/native rename {packages/cppjs-sample-cloud-cloudflare-worker => cppjs-samples/cppjs-playground-cloud-cloudflare-worker}/.gitignore (100%) create mode 100644 cppjs-samples/cppjs-playground-cloud-cloudflare-worker/cppjs.config.mjs rename {packages/cppjs-sample-cloud-cloudflare-worker => cppjs-samples/cppjs-playground-cloud-cloudflare-worker}/e2e/cppjs.spec.cjs (100%) create mode 100644 cppjs-samples/cppjs-playground-cloud-cloudflare-worker/index.js create mode 100644 cppjs-samples/cppjs-playground-cloud-cloudflare-worker/package.json rename {packages/cppjs-sample-cloud-cloudflare-worker => cppjs-samples/cppjs-playground-cloud-cloudflare-worker}/playwright.dev.config.cjs (100%) create mode 100644 cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.h rename {packages/cppjs-sample-cloud-cloudflare-worker => cppjs-samples/cppjs-playground-cloud-cloudflare-worker}/wrangler.toml (100%) create mode 100644 cppjs-samples/cppjs-playground-config/native/native.cpp create mode 100644 cppjs-samples/cppjs-playground-config/native/native.h rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/.bundle/config (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/.eslintrc.js (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/.gitignore (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/.prettierrc.js (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/CHANGELOG.md (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/Gemfile (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/README.md (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/__tests__/App.test.tsx (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/build.gradle (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/debug.keystore (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/proguard-rules.pro (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/debug/AndroidManifest.xml (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/AndroidManifest.xml (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/certs/cacert.pem create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/default.rsc create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ecw_cs.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/epsg.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/esri_StatePlane_extra.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdalicon.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdalinfo_output.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdalmdiminfo_output.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdaltileindex.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gfs.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_center.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_process.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_datum.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/header.dxf create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/osmconf.ini create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_datum.txt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57agencies.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57attributes.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/seed_2d.dgn create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/seed_3d.dgn create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/stateplane.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/trailer.dxf create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/CH create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/GL27 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2000 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2008 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2014 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2020 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad.lst create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad27 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad83 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/other.extra create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/proj.db create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/proj.ini create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/projjson.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/triangulation.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/world rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/drawable/rn_edit_text_material.xml (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/values/strings.xml (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/app/src/main/res/values/styles.xml (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/build.gradle (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/gradle.properties (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/gradle/wrapper/gradle-wrapper.jar (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/gradle/wrapper/gradle-wrapper.properties (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/gradlew (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/gradlew.bat (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/android/settings.gradle (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/app.json (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/babel.config.js (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ci/.cppjs/build/bridge/native.i.cpp (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ci/.cppjs/build/bridge/native.i.cpp.exports.json (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ci/.cppjs/build/interface/native.i (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/cache.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/cppjs.config.mjs rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/index.js (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/.xcode.env (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/Podfile (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/Podfile.lock rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/AppDelegate.h (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/AppDelegate.mm (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/Info.plist (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLI/main.m (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLITests/Info.plist (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/jest.config.js (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/maestro.yaml (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/metro.config.js (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/package.json rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/src/App.tsx (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/native/native.cpp rename {packages/cppjs-sample-backend-nodejs-wasm => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/src/native/native.h (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread}/tsconfig.json (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/.bundle/config create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/.eslintrc.js create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/.gitignore create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/.prettierrc.js create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/Gemfile create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/README.md create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/__tests__/App.test.tsx create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/build.gradle rename {packages/cppjs-sample-mobile-reactnative-expo => cppjs-samples/cppjs-playground-mobile-reactnative-cli}/android/app/debug.keystore (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/proguard-rules.pro create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/debug/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/default.rsc create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ecw_cs.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/epsg.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/esri_StatePlane_extra.wkt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdalicon.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdalinfo_output.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdalmdiminfo_output.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdaltileindex.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gfs.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_center.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_process.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_datum.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/header.dxf create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/osmconf.ini create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_datum.txt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57agencies.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57attributes.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/seed_2d.dgn create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/seed_3d.dgn create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/stateplane.csv create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/trailer.dxf create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xsd create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/CH create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/GL27 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2000 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2008 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2014 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2020 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad.lst create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad27 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad83 create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/other.extra create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/proj.db create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/proj.ini create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/projjson.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/triangulation.schema.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/world create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt rename {packages/cppjs-sample-mobile-reactnative-expo => cppjs-samples/cppjs-playground-mobile-reactnative-cli}/android/app/src/main/res/drawable/rn_edit_text_material.xml (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/build.gradle create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle.properties create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew.bat create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/settings.gradle create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/app.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/babel.config.js create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/cache.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/cppjs.config.mjs create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/index.js rename {packages/cppjs-sample-mobile-reactnative-expo => cppjs-samples/cppjs-playground-mobile-reactnative-cli}/ios/.xcode.env (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile.lock create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/jest.config.js create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/maestro.yaml create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/metro.config.js create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/package.json create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/App.tsx create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/native/native.cpp rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-playground-mobile-reactnative-cli}/src/native/native.h (100%) create mode 100644 cppjs-samples/cppjs-playground-mobile-reactnative-cli/tsconfig.json rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/.gitignore (100%) create mode 100644 cppjs-samples/cppjs-playground-web-rspack/cppjs.config.mjs rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/e2e/cppjs.spec.cjs (100%) rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/index.html (100%) create mode 100644 cppjs-samples/cppjs-playground-web-rspack/package.json rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/playwright.dev.config.cjs (100%) rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/playwright.prod.config.cjs (100%) create mode 100644 cppjs-samples/cppjs-playground-web-rspack/rspack.config.mjs create mode 100644 cppjs-samples/cppjs-playground-web-rspack/serve.json rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/src/App.css (100%) create mode 100644 cppjs-samples/cppjs-playground-web-rspack/src/App.jsx rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/src/assets/react.svg (100%) rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/src/index.css (100%) rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-playground-web-rspack}/src/main.jsx (100%) create mode 120000 cppjs-samples/cppjs-playground-web-rspack/src/native rename {packages/cppjs-sample-web-vanilla => cppjs-samples/cppjs-playground-web-vanilla}/.gitignore (100%) rename {packages/cppjs-sample-web-vanilla => cppjs-samples/cppjs-playground-web-vanilla}/CHANGELOG.md (100%) rename {packages/cppjs-sample-web-vanilla => cppjs-samples/cppjs-playground-web-vanilla}/README.md (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vanilla/cppjs.config.mjs rename {packages/cppjs-sample-web-react-vite => cppjs-samples/cppjs-playground-web-vanilla}/e2e/cppjs.spec.cjs (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vanilla/index.html create mode 100644 cppjs-samples/cppjs-playground-web-vanilla/package.json rename {packages/cppjs-sample-web-vanilla => cppjs-samples/cppjs-playground-web-vanilla}/playwright.prod.config.cjs (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vanilla/serve.json create mode 120000 cppjs-samples/cppjs-playground-web-vanilla/src/native rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/.gitignore (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vite-multithread/cppjs.config.js rename {packages/cppjs-sample-web-svelte-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/e2e/cppjs.spec.cjs (100%) rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/index.html (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vite-multithread/package.json rename {packages/cppjs-sample-web-react-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/playwright.dev.config.cjs (100%) rename {packages/cppjs-sample-web-react-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/playwright.prod.config.cjs (100%) rename {packages/cppjs-sample-web-react-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/public/vite.svg (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vite-multithread/serve.json create mode 100644 cppjs-samples/cppjs-playground-web-vite-multithread/src/App.vue rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/src/main.js (100%) create mode 120000 cppjs-samples/cppjs-playground-web-vite-multithread/src/native rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/src/style.css (100%) rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-playground-web-vite-multithread}/vite.config.js (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vite/.gitignore create mode 100644 cppjs-samples/cppjs-playground-web-vite/cppjs.config.js rename {packages/cppjs-sample-web-vanilla => cppjs-samples/cppjs-playground-web-vite}/e2e/cppjs.spec.cjs (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vite/index.html create mode 100644 cppjs-samples/cppjs-playground-web-vite/package.json rename {packages/cppjs-sample-web-svelte-vite => cppjs-samples/cppjs-playground-web-vite}/playwright.dev.config.cjs (100%) rename {packages/cppjs-sample-web-svelte-vite => cppjs-samples/cppjs-playground-web-vite}/playwright.prod.config.cjs (100%) rename {packages/cppjs-sample-web-svelte-vite => cppjs-samples/cppjs-playground-web-vite}/public/vite.svg (100%) create mode 100644 cppjs-samples/cppjs-playground-web-vite/serve.json create mode 100644 cppjs-samples/cppjs-playground-web-vite/src/App.vue create mode 100644 cppjs-samples/cppjs-playground-web-vite/src/main.js create mode 100644 cppjs-samples/cppjs-playground-web-vite/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-playground-web-vite/src/native/native.h create mode 100644 cppjs-samples/cppjs-playground-web-vite/src/style.css create mode 100644 cppjs-samples/cppjs-playground-web-vite/vite.config.js rename {packages => cppjs-samples}/cppjs-sample-backend-nodejs-wasm/.npmignore (100%) create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm/README.md rename {packages => cppjs-samples}/cppjs-sample-backend-nodejs-wasm/cppjs.config.mjs (100%) rename {packages => cppjs-samples}/cppjs-sample-backend-nodejs-wasm/package.json (100%) rename {packages => cppjs-samples}/cppjs-sample-backend-nodejs-wasm/src/index.js (100%) rename {packages => cppjs-samples}/cppjs-sample-backend-nodejs-wasm/src/index.mjs (100%) rename {packages => cppjs-samples}/cppjs-sample-backend-nodejs-wasm/src/native/native.cpp (100%) rename {packages/cppjs-sample-mobile-reactnative-expo => cppjs-samples/cppjs-sample-backend-nodejs-wasm}/src/native/native.h (100%) create mode 100644 cppjs-samples/cppjs-sample-cloud-cloudflare-worker/.gitignore rename {packages => cppjs-samples}/cppjs-sample-cloud-cloudflare-worker/CHANGELOG.md (100%) rename {packages => cppjs-samples}/cppjs-sample-cloud-cloudflare-worker/Readme.md (100%) rename {packages => cppjs-samples}/cppjs-sample-cloud-cloudflare-worker/cppjs.config.mjs (100%) create mode 100644 cppjs-samples/cppjs-sample-cloud-cloudflare-worker/e2e/cppjs.spec.cjs rename {packages => cppjs-samples}/cppjs-sample-cloud-cloudflare-worker/index.js (89%) rename {packages => cppjs-samples}/cppjs-sample-cloud-cloudflare-worker/package.json (97%) create mode 100644 cppjs-samples/cppjs-sample-cloud-cloudflare-worker/playwright.dev.config.cjs rename {packages => cppjs-samples}/cppjs-sample-cloud-cloudflare-worker/src/native/native.cpp (100%) rename {packages => cppjs-samples}/cppjs-sample-cloud-cloudflare-worker/src/native/native.h (100%) create mode 100644 cppjs-samples/cppjs-sample-cloud-cloudflare-worker/wrangler.toml rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/.gitignore (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/CHANGELOG.md (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/CMakeLists.txt (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/cppjs.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/package.json (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/src/native/cppjs-lib-samplebasic-cmake/samplebasiccmake.h (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-cmake/src/native/samplebasiccmake.cpp (100%) create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/.npmignore rename {packages/cppjs-sample-lib-prebuilt-matrix => cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread}/CHANGELOG.md (100%) create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/cppjs-sample-lib-prebuilt-matrix-multithread.podspec rename {packages/cppjs-package-iconv => cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread}/cppjs.config.js (50%) create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/package.json rename {packages/cppjs-sample-lib-prebuilt-matrix => cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread}/playground/Matrix.js (100%) rename {packages/cppjs-sample-lib-prebuilt-matrix => cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread}/playground/index.html (100%) rename {packages/cppjs-sample-lib-prebuilt-matrix => cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread}/src/native/Matrix.cpp (100%) rename {packages/cppjs-sample-lib-prebuilt-matrix => cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread}/src/native/Matrix.h (100%) create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix/.npmignore rename {packages/cppjs-package-zlib => cppjs-samples/cppjs-sample-lib-prebuilt-matrix}/CHANGELOG.md (70%) rename {packages => cppjs-samples}/cppjs-sample-lib-prebuilt-matrix/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-prebuilt-matrix/cppjs-sample-lib-prebuilt-matrix.podspec (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-prebuilt-matrix/cppjs.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-prebuilt-matrix/package.json (100%) create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/Matrix.js create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/index.html create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.cpp create mode 100644 cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.h rename {packages => cppjs-samples}/cppjs-sample-lib-source/.gitignore (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-source/CHANGELOG.md (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-source/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-source/cppjs.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-source/package.json (100%) rename {packages => cppjs-samples}/cppjs-sample-lib-source/src/native/cppjs-lib-samplebasic/samplebasic.h (100%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/.bundle/config create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/.eslintrc.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/.gitignore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/.prettierrc.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/Gemfile create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/README.md create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/__tests__/App.test.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/build.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/debug.keystore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/proguard-rules.pro create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/debug/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/build.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle.properties create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew.bat create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/settings.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/app.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/babel.config.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-cli/cppjs.config.mjs (86%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/index.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/.xcode.env create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/Podfile rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-cli/ios/Podfile.lock (100%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/jest.config.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/maestro.yaml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/metro.config.js rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-cli/package.json (99%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/App.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.cpp rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-sample-mobile-reactnative-cli}/src/native/native.h (100%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli/tsconfig.json rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/.gitignore (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/.gitignore (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/build.gradle (100%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/debug.keystore rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/proguard-rules.pro (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/debug/AndroidManifest.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/AndroidManifest.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainActivity.kt (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainApplication.kt (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable-hdpi/splashscreen_image.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable-mdpi/splashscreen_image.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png (100%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/rn_edit_text_material.xml rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/splashscreen.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values-night/colors.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/colors.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/strings.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/styles.xml (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/build.gradle (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/gradle.properties (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.jar (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.properties (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/gradlew (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/gradlew.bat (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/build.gradle.kts (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/android/settings.gradle (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/app.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/app/(tabs)/_layout.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/app/(tabs)/explore.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/app/(tabs)/index.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/app/+html.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/app/+not-found.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/app/_layout.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/fonts/SpaceMono-Regular.ttf (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/adaptive-icon.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/favicon.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/icon.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/partial-react-logo.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@2x.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@3x.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/assets/images/splash.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/babel.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/Collapsible.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/ExternalLink.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/HelloWave.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/ParallaxScrollView.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/ThemedText.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/ThemedView.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/__tests__/ThemedText-test.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/__tests__/__snapshots__/ThemedText-test.tsx.snap (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/components/navigation/TabBarIcon.tsx (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/constants/Colors.ts (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/cppjs.config.mjs (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.ts (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.web.ts (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/hooks/useThemeColor.ts (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/.gitignore (100%) create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/.xcode.env rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/Podfile (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/Podfile.lock (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/Podfile.properties.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/project.pbxproj (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/xcshareddata/xcschemes/cppjssamplemobilereactnativeexpo.xcscheme (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcworkspace/contents.xcworkspacedata (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.h (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.mm (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/Contents.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/Contents.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/image.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/image.png (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Info.plist (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/PrivacyInfo.xcprivacy (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/SplashScreen.storyboard (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Supporting/Expo.plist (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo-Bridging-Header.h (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo.entitlements (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/main.m (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/noop-file.swift (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/metro.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/package-lock.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/package.json (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/scripts/reset-project.js (100%) rename {packages/cppjs-sample-mobile-reactnative-cli => cppjs-samples/cppjs-sample-mobile-reactnative-expo}/src/native/native.cpp (100%) rename {packages/cppjs-sample-web-react-vite => cppjs-samples/cppjs-sample-mobile-reactnative-expo}/src/native/native.h (100%) rename {packages => cppjs-samples}/cppjs-sample-mobile-reactnative-expo/tsconfig.json (100%) create mode 100644 cppjs-samples/cppjs-sample-web-react-rspack/.gitignore rename {packages => cppjs-samples}/cppjs-sample-web-react-rspack/CHANGELOG.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-rspack/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-rspack/cppjs.config.mjs (100%) rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-sample-web-react-rspack}/e2e/cppjs.spec.cjs (100%) create mode 100644 cppjs-samples/cppjs-sample-web-react-rspack/index.html rename {packages => cppjs-samples}/cppjs-sample-web-react-rspack/package.json (100%) create mode 100644 cppjs-samples/cppjs-sample-web-react-rspack/playwright.dev.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-react-rspack/playwright.prod.config.cjs rename {packages => cppjs-samples}/cppjs-sample-web-react-rspack/rspack.config.mjs (100%) create mode 100644 cppjs-samples/cppjs-sample-web-react-rspack/src/App.css rename {packages => cppjs-samples}/cppjs-sample-web-react-rspack/src/App.jsx (100%) rename {packages/cppjs-sample-web-react-vite => cppjs-samples/cppjs-sample-web-react-rspack}/src/assets/react.svg (100%) create mode 100644 cppjs-samples/cppjs-sample-web-react-rspack/src/index.css create mode 100644 cppjs-samples/cppjs-sample-web-react-rspack/src/main.jsx rename {packages/cppjs-sample-mobile-reactnative-expo => cppjs-samples/cppjs-sample-web-react-rspack}/src/native/native.cpp (100%) rename {packages/cppjs-sample-web-svelte-vite => cppjs-samples/cppjs-sample-web-react-rspack}/src/native/native.h (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/.gitignore (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/CHANGELOG.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/cppjs.config.js (100%) create mode 100644 cppjs-samples/cppjs-sample-web-react-vite/e2e/cppjs.spec.cjs rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/eslint.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/index.html (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/package.json (100%) rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-sample-web-react-vite}/playwright.dev.config.cjs (100%) rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-sample-web-react-vite}/playwright.prod.config.cjs (100%) rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-sample-web-react-vite}/public/vite.svg (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/src/App.css (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/src/App.jsx (100%) create mode 100644 cppjs-samples/cppjs-sample-web-react-vite/src/assets/react.svg rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/src/index.css (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/src/main.jsx (100%) rename {packages/cppjs-sample-web-react-rspack => cppjs-samples/cppjs-sample-web-react-vite}/src/native/native.cpp (100%) rename {packages/cppjs-sample-web-vanilla => cppjs-samples/cppjs-sample-web-react-vite}/src/native/native.h (100%) rename {packages => cppjs-samples}/cppjs-sample-web-react-vite/vite.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/.gitignore (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/CHANGELOG.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/cppjs.config.js (100%) create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite/e2e/cppjs.spec.cjs rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/index.html (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/jsconfig.json (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/package.json (100%) create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite/playwright.dev.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite/playwright.prod.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite/public/vite.svg rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/src/App.svelte (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/src/app.css (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/src/main.js (100%) rename {packages/cppjs-sample-web-react-vite => cppjs-samples/cppjs-sample-web-svelte-vite}/src/native/native.cpp (100%) rename {packages/cppjs-sample-web-vue-vite => cppjs-samples/cppjs-sample-web-svelte-vite}/src/native/native.h (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/src/vite-env.d.ts (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/svelte.config.js (100%) rename {packages => cppjs-samples}/cppjs-sample-web-svelte-vite/vite.config.js (100%) create mode 100644 cppjs-samples/cppjs-sample-web-vanilla/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-vanilla/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-web-vanilla/README.md rename {packages => cppjs-samples}/cppjs-sample-web-vanilla/cppjs.config.mjs (100%) create mode 100644 cppjs-samples/cppjs-sample-web-vanilla/e2e/cppjs.spec.cjs rename {packages => cppjs-samples}/cppjs-sample-web-vanilla/index.html (100%) rename {packages => cppjs-samples}/cppjs-sample-web-vanilla/package.json (100%) create mode 100644 cppjs-samples/cppjs-sample-web-vanilla/playwright.prod.config.cjs rename {packages/cppjs-sample-web-svelte-vite => cppjs-samples/cppjs-sample-web-vanilla}/src/native/native.cpp (100%) create mode 100644 cppjs-samples/cppjs-sample-web-vanilla/src/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/.gitignore rename {packages => cppjs-samples}/cppjs-sample-web-vue-vite/CHANGELOG.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-vue-vite/README.md (100%) rename {packages => cppjs-samples}/cppjs-sample-web-vue-vite/cppjs.config.js (100%) create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/e2e/cppjs.spec.cjs create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/index.html rename {packages => cppjs-samples}/cppjs-sample-web-vue-vite/package.json (99%) create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/playwright.dev.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/playwright.prod.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/public/vite.svg create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/serve.json rename {packages => cppjs-samples}/cppjs-sample-web-vue-vite/src/App.vue (100%) create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/src/main.js create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/src/style.css create mode 100644 cppjs-samples/cppjs-sample-web-vue-vite/vite.config.js delete mode 100644 packages/cpp.js/src/actions/buildWasm.js delete mode 100644 packages/cpp.js/src/assets/dist.cmake delete mode 100644 packages/cpp.js/src/utils/findFiles.js delete mode 100644 packages/cppjs-package-gdal/cppjs.config.js delete mode 100644 packages/cppjs-package-proj/cppjs.config.js delete mode 100644 packages/cppjs-package-spatialite/cppjs.config.js delete mode 100644 packages/cppjs-package-sqlite3/CHANGELOG.md delete mode 100644 packages/cppjs-package-sqlite3/cppjs-package-sqlite3.podspec delete mode 100644 packages/cppjs-package-zlib/cppjs-package-zlib.podspec delete mode 100644 packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json delete mode 100644 packages/cppjs-sample-web-vanilla/src/native/native.cpp delete mode 100644 packages/cppjs-sample-web-vue-vite/src/native/native.cpp diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 39c6d142..8a36c045 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -5,13 +5,21 @@ on: branches: - main paths: - - packages/** + - cppjs-core/** + - cppjs-extensions/** + - cppjs-packages/** + - cppjs-plugins/** + - cppjs-samples/** - .github/workflows/build-linux.yml pull_request: branches: - main paths: - - packages/** + - cppjs-core/** + - cppjs-extensions/** + - cppjs-packages/** + - cppjs-plugins/** + - cppjs-samples/** - .github/workflows/build-linux.yml permissions: {} diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 28d8ccc4..1fbc22d6 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -5,18 +5,22 @@ on: branches: - main paths: - - packages/** + - cppjs-core/** + - cppjs-extensions/** + - cppjs-packages/** + - cppjs-plugins/** + - cppjs-samples/** - .github/workflows/build-macos.yml pull_request: branches: - main paths: - - packages/cpp.js/** - - packages/cppjs-plugin-*/** - - packages/cppjs-sample-lib-*/** - - packages/cppjs-sample-web-*/** - - packages/cppjs-sample-backend-*/** - - packages/cppjs-sample-cloud-*/** + - cppjs-core/cpp.js/** + - cppjs-plugins/** + - cppjs-samples/cppjs-sample-lib-*/** + - cppjs-samples/cppjs-sample-web-*/** + - cppjs-samples/cppjs-sample-backend-*/** + - cppjs-samples/cppjs-sample-cloud-*/** - .github/workflows/build-macos.yml permissions: {} diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index b29b550e..3cd2566e 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -5,14 +5,18 @@ on: branches: - main paths: - - packages/** + - cppjs-core/** + - cppjs-extensions/** + - cppjs-packages/** + - cppjs-plugins/** + - cppjs-samples/** - .github/workflows/build-windows.yml pull_request: branches: - main paths: - - packages/cpp.js/** - - packages/cppjs-plugin-*/** + - cppjs-core/cpp.js/** + - cppjs-plugins/** - .github/workflows/build-windows.yml permissions: {} diff --git a/.github/workflows/test-android-sample.yml b/.github/workflows/test-android-sample.yml index 90f1e43c..c79d4683 100644 --- a/.github/workflows/test-android-sample.yml +++ b/.github/workflows/test-android-sample.yml @@ -5,17 +5,21 @@ on: branches: - main paths: - - packages/** + - cppjs-core/** + - cppjs-extensions/** + - cppjs-packages/** + - cppjs-plugins/** + - cppjs-samples/** - .github/workflows/test-android-sample.yml pull_request: branches: - main paths: - - packages/cpp.js/** - - packages/cppjs-plugin-metro/** - - packages/cppjs-plugin-react-native/** - - packages/cppjs-sample-lib-prebuilt-matrix/** - - packages/cppjs-sample-mobile-reactnative-cli/** + - cppjs-core/cpp.js/** + - cppjs-plugins/cppjs-plugin-metro/** + - cppjs-plugins/cppjs-plugin-react-native/** + - cppjs-samples/cppjs-sample-lib-prebuilt-matrix/** + - cppjs-samples/cppjs-sample-mobile-reactnative-cli/** - .github/workflows/test-android-sample.yml permissions: {} @@ -52,25 +56,25 @@ jobs: - name: Gradle cache uses: gradle/actions/setup-gradle@0bdd871935719febd78681f197cd39af5b6e16a6 #v4 - name: create AVD - uses: reactivecircus/android-emulator-runner@62dbb605bba737720e10b196cb4220d374026a6d #v2 + uses: reactivecircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b #v2 with: - api-level: 30 - target: google_apis + api-level: 35 + target: default arch: x86_64 cmake: 3.31.1 - ndk: 26.1.10909125 + ndk: 27.3.13750724 force-avd-creation: false emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: false script: echo "Generated AVD snapshot for caching." - name: E2E Android - uses: reactivecircus/android-emulator-runner@62dbb605bba737720e10b196cb4220d374026a6d #v2 + uses: reactivecircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b #v2 with: - api-level: 30 - target: google_apis + api-level: 35 + target: default arch: x86_64 cmake: 3.31.1 - ndk: 26.1.10909125 + ndk: 27.3.13750724 force-avd-creation: false emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: true diff --git a/.github/workflows/test-ios-sample.yml b/.github/workflows/test-ios-sample.yml index 3562a785..d3b1c6a4 100644 --- a/.github/workflows/test-ios-sample.yml +++ b/.github/workflows/test-ios-sample.yml @@ -5,18 +5,22 @@ on: branches: - main paths: - - packages/** + - cppjs-core/** + - cppjs-extensions/** + - cppjs-packages/** + - cppjs-plugins/** + - cppjs-samples/** - .github/workflows/test-ios-sample.yml pull_request: branches: - main paths: - - packages/cpp.js/** - - packages/cppjs-plugin-metro/** - - packages/cppjs-plugin-react-native/** - - packages/cppjs-plugin-react-native-ios-helper/** - - packages/cppjs-sample-lib-prebuilt-matrix/** - - packages/cppjs-sample-mobile-reactnative-cli/** + - cppjs-core/cpp.js/** + - cppjs-plugins/cppjs-plugin-metro/** + - cppjs-plugins/cppjs-plugin-react-native/** + - cppjs-plugins/cppjs-plugin-react-native-ios-helper/** + - cppjs-samples/cppjs-sample-lib-prebuilt-matrix/** + - cppjs-samples/cppjs-sample-mobile-reactnative-cli/** - .github/workflows/test-ios-sample.yml permissions: {} @@ -70,10 +74,10 @@ jobs: curl -fsSL "https://get.maestro.mobile.dev" | bash echo "$HOME/.maestro/bin" >> $GITHUB_PATH - name: Restore cached bridge files - run: cp -r ./packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs ./packages/cppjs-sample-mobile-reactnative-cli + run: cp -r ./cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs ./cppjs-samples/cppjs-sample-mobile-reactnative-cli - name: Build cppjs-sample-lib-prebuilt-matrix run: pnpm --filter=@cpp.js/sample-lib-prebuilt-matrix run build:ios - name: Pod install - run: cd packages/cppjs-sample-mobile-reactnative-cli/ios && pod install && cd ../../../ + run: cd cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios && pod install && cd ../../../ - name: E2E IOS run: pnpm run e2e:ios diff --git a/packages/cpp.js/CHANGELOG.md b/cppjs-core/cpp.js/CHANGELOG.md similarity index 100% rename from packages/cpp.js/CHANGELOG.md rename to cppjs-core/cpp.js/CHANGELOG.md diff --git a/packages/cpp.js/README.md b/cppjs-core/cpp.js/README.md similarity index 100% rename from packages/cpp.js/README.md rename to cppjs-core/cpp.js/README.md diff --git a/packages/cpp.js/package.json b/cppjs-core/cpp.js/package.json similarity index 100% rename from packages/cpp.js/package.json rename to cppjs-core/cpp.js/package.json diff --git a/packages/cpp.js/src/actions/buildJs.js b/cppjs-core/cpp.js/src/actions/buildJs.js similarity index 93% rename from packages/cpp.js/src/actions/buildJs.js rename to cppjs-core/cpp.js/src/actions/buildJs.js index cb926be9..12efcf3e 100644 --- a/packages/cpp.js/src/actions/buildJs.js +++ b/cppjs-core/cpp.js/src/actions/buildJs.js @@ -14,6 +14,7 @@ const nodeLibs = { buffer: 'export default {};', crypto: 'export default {};', stream: 'export default {};', + ws: 'export default {};', }; const options = { @@ -42,7 +43,8 @@ export default async function buildJS(input, type) { env: ${env}, paths: { wasm: '${state.config.general.name}.wasm', - data: '${state.config.general.name}.data.txt' + data: '${state.config.general.name}.data.txt', + worker: '${state.config.general.name}.js', } }`; let file = input; diff --git a/cppjs-core/cpp.js/src/actions/buildWasm.js b/cppjs-core/cpp.js/src/actions/buildWasm.js new file mode 100644 index 00000000..afd0132c --- /dev/null +++ b/cppjs-core/cpp.js/src/actions/buildWasm.js @@ -0,0 +1,127 @@ +import fs from 'node:fs'; +import replace from 'replace'; +import run from './run.js'; +import getDependLibs from './getDependLibs.js'; +import getData from './getData.js'; +import buildJs from './buildJs.js'; +import triggerExtensions from './extensions.js'; +import state from '../state/index.js'; + +export default async function buildWasm(type, isProd = false) { + const buildType = isProd ? 'Release' : 'Debug'; + const libs = [ + ...getDependLibs(), + `${state.config.paths.build}/Source-${buildType}/Emscripten-x86_64/lib${state.config.general.name}.a`, + `${state.config.paths.build}/Bridge-${buildType}/Emscripten-x86_64/lib${state.config.general.name}.a`, + ]; + + const binary = getData('binary', 'Emscripten-x86_64'); + + if (type === 'browser') { + console.log('wasm compiling for browser...'); + const t0 = performance.now(); + const emccFlags = [ + ...(binary?.emccFlags || []), + ...(getData('binary', 'Emscripten-x86_64', 'browser')?.emccFlags || []), + ]; + + triggerExtensions('buildWasm', 'beforeBuildBrowser', [emccFlags]); + + if (state.config.build.usePthread && !emccFlags.includes('-pthread')) { + emccFlags.push('-pthread'); + emccFlags.push('-sPTHREAD_POOL_SIZE=4'); + } + + const data = Object.entries(getData('data', 'Emscripten-x86_64', 'browser')).map(([key, value]) => ['--preload-file', `${key.replaceAll('@', '@@')}@${value}`]).flat(); + run('emcc', [ + '-lembind', '-Wl,--whole-archive', + ...emccFlags, + // '-lwebsocket.js', '-sPROXY_POSIX_SOCKETS', '-sWEBSOCKET_DEBUG=1', '-sJSPI', '-g', '-sWASMFS', + '-sWASM_BIGINT=1', '-s', 'FORCE_FILESYSTEM=1', + '-sEXPORT_NAME=Module2', // '-pthread', '-sPTHREAD_POOL_SIZE=5', + ...libs, ...(isProd ? ['-O3'] : []), + '-s', 'WASM=1', '-s', 'MODULARIZE=1', '-s', 'DYNAMIC_EXECUTION=0', + /* '-s', 'RESERVED_FUNCTION_POINTERS=200',*/ // '-s', 'FORCE_FILESYSTEM=1', + // '-s', 'ALLOW_MEMORY_GROWTH=1', + '-s', 'EXPORTED_RUNTIME_METHODS=["FS", "ENV"]', + '-fwasm-exceptions', + '-o', `${state.config.paths.build}/${state.config.general.name}.js`, + ...data, + ]); + const t1 = performance.now(); + console.log('wasm compiled for browser...', Math.round(t1 - t0)); + console.log('js compiling for browser...'); + replace({ + regex: 'var _scriptName = ', + replacement: `var _scriptName = 'cpp.worker.js'; //`, + paths: [`${state.config.paths.build}/${state.config.general.name}.js`], + recursive: false, + silent: true, + }); + /* replace({ + regex: 'val === 10', + replacement: 'false', + paths: [`${state.config.paths.build}/${state.config.general.name}.js`], + recursive: false, + silent: true, + }); */ + await buildJs(`${state.config.paths.build}/${state.config.general.name}.js`, 'browser'); + // fs.rmSync(`${state.config.paths.build}/${state.config.general.name}.js`); + // fs.copyFileSync(`${state.config.paths.build}/${state.config.general.name}.browser.js`, `${state.config.paths.build}/${state.config.general.name}.js`); + // fs.renameSync(`${state.config.paths.build}/${state.config.general.name}.js`, `${state.config.paths.build}/${state.config.general.name}.worker.browser.js`); + const t2 = performance.now(); + console.log('js compiled for browser...', Math.round(t2 - t1)); + } + + if (type === 'node') { + console.log('wasm compiling for node...'); + const emccFlags = [ + ...(binary?.emccFlags || []), + ...(getData('binary', 'Emscripten-x86_64', 'node')?.emccFlags || []), + ]; + + triggerExtensions('buildWasm', 'beforeBuildNodeJS', [emccFlags]); + + if (state.config.build.usePthread && !emccFlags.includes('-pthread')) { + emccFlags.push('-pthread'); + emccFlags.push('-sPTHREAD_POOL_SIZE=4'); + } + + run('emcc', [ + '-lembind', '-Wl,--whole-archive', '-lnodefs.js', + ...emccFlags, + // '-s', 'FETCH', '-sJSPI', '-sWASM_BIGINT=1', '-pthread', '-sPTHREAD_POOL_SIZE=5', + '-sWASM_BIGINT=1', '-s', 'FORCE_FILESYSTEM=1', + ...libs, ...(isProd ? ['-O3'] : []), + '-s', 'WASM=1', '-s', 'MODULARIZE=1', '-s', 'DYNAMIC_EXECUTION=0', + // '-s', 'RESERVED_FUNCTION_POINTERS=200', '-s', 'DISABLE_EXCEPTION_CATCHING=0', '-s', 'FORCE_FILESYSTEM=1', + // '-s', 'ALLOW_MEMORY_GROWTH=1', + '-s', 'NODERAWFS', + '-s', 'EXPORTED_RUNTIME_METHODS=["FS", "ENV", "NODEFS"]', + '-fwasm-exceptions', + '-o', `${state.config.paths.build}/${state.config.general.name}.js`, + ]); + console.log('wasm compiled for node...'); + console.log('js compiling for node...'); + await buildJs(`${state.config.paths.build}/${state.config.general.name}.js`, 'node'); + if (emccFlags.includes('FETCH')) { + fs.appendFileSync(`${state.config.paths.build}/${state.config.general.name}.node.js`, 'var XMLHttpRequest = require(\'xhr2\');\n'); + } + // fs.renameSync(`${state.config.paths.build}/${state.config.general.name}.js`, `${state.config.paths.build}/${state.config.general.name}.worker.node.js`); + console.log('js compiled for node...'); + + Object.entries(getData('data', 'Emscripten-x86_64', 'node')).forEach(([key, value]) => { + if (fs.existsSync(key)) { + const dAssetPath = `${state.config.paths.build}/data/${value}`; + if (!fs.existsSync(dAssetPath)) { + fs.mkdirSync(dAssetPath, { recursive: true }); + fs.cpSync(key, dAssetPath, { recursive: true }); + } + } + }); + } + + if (fs.existsSync(`${state.config.paths.build}/${state.config.general.name}.data`)) { + fs.renameSync(`${state.config.paths.build}/${state.config.general.name}.data`, `${state.config.paths.build}/${state.config.general.name}.data.txt`); + } +} diff --git a/packages/cpp.js/src/actions/createInterface.js b/cppjs-core/cpp.js/src/actions/createInterface.js similarity index 100% rename from packages/cpp.js/src/actions/createInterface.js rename to cppjs-core/cpp.js/src/actions/createInterface.js diff --git a/packages/cpp.js/src/actions/createLib.js b/cppjs-core/cpp.js/src/actions/createLib.js similarity index 71% rename from packages/cpp.js/src/actions/createLib.js rename to cppjs-core/cpp.js/src/actions/createLib.js index fcf107a6..f39d654f 100644 --- a/packages/cpp.js/src/actions/createLib.js +++ b/cppjs-core/cpp.js/src/actions/createLib.js @@ -1,8 +1,10 @@ import os from 'node:os'; import fs from 'node:fs'; import replace from 'replace'; +import getData from './getData.js'; import run from './run.js'; import getCmakeParameters from './getCmakeParameters.js'; +import triggerExtensions from './extensions.js'; import state from '../state/index.js'; const cpuCount = os.cpus().length - 1; @@ -26,8 +28,8 @@ export default function createLib(platform, fileType, options = {}) { const buildEnv = { params: [] }; let buildParams; const depPaths = state.config.allDependencyPaths[platform]; - if (state.config.build) { - const { getBuildParams, getExtraLibs } = state.config.build; + if (state.config.build.withBuildConfig) { + const { getBuildParams, getExtraLibs, usePthread } = state.config.build; buildEnv.console = true; const ext = sharedPlatforms.includes(basePlatform) ? 'so' : 'a'; buildParams = getBuildParams ? getBuildParams(platform, depPaths, ext, buildPath) : []; @@ -36,30 +38,49 @@ export default function createLib(platform, fileType, options = {}) { buildParams.push(`-DCMAKE_PREFIX_PATH=${libdir}`, `-DCMAKE_FIND_ROOT_PATH=${libdir}`, `-DBUILD_TYPE=${cmakeBuildType}`); } - const cFlags = Object.values(depPaths).map((d) => `-I${d.header}`).join(' '); - const ldFlags = Object.values(depPaths).map((d) => `-L${d.libPath}`).join(' '); + const cFlags = Object.values(depPaths).filter(d => d.header).map((d) => `-I${d.header}`); + const ldFlags = Object.values(depPaths).filter(d => d.libPath).map((d) => `-L${d.libPath}`); let dependLibs = ''; if (state.config.build?.buildType === 'configure') { - dependLibs = Object.keys(depPaths).map((d) => `-l${d}`).join(' '); + dependLibs = Object.keys(depPaths).filter(d => d).map((d) => `-l${d}`).join(' '); } const extraLibs = getExtraLibs ? getExtraLibs(platform) : []; - buildEnv.params.push('-e', `CFLAGS=${cFlags}`); - buildEnv.params.push('-e', `CPPFLAGS=${cFlags}`); - buildEnv.params.push('-e', `LDFLAGS=${ldFlags} ${extraLibs.join(' ')}`); + triggerExtensions('createLib', 'setFlagWithBuildConfig', [buildEnv, cFlags, ldFlags]); + + if (usePthread) { + cFlags.push('-pthread'); + ldFlags.push('-pthread'); + } + + buildEnv.params.push('-e', `CFLAGS=${cFlags.join(' ')}`); + buildEnv.params.push('-e', `CXXFLAGS=${cFlags.join(' ')}`); + buildEnv.params.push('-e', `LDFLAGS=${ldFlags.join(' ')} ${extraLibs.join(' ')}`); // buildEnv.params.push('-e', `LIBS=${dependLibs} ${extraLibs.join(' ')}`); - state.config.build.env?.forEach((e) => { + let configBuildEnv = state.config.build.env; + if (configBuildEnv && typeof configBuildEnv === 'function') { + configBuildEnv = configBuildEnv(platform); + } + configBuildEnv?.forEach((e) => { buildEnv.params.push('-e', e); }); } else { buildParams = getCmakeParameters(platform, options); + + triggerExtensions('createLib', 'setFlagWithoutBuildConfig', [buildEnv]); + + if (state.config.build.usePthread) { + buildEnv.params.push('-e', `CFLAGS=-pthread`); + buildEnv.params.push('-e', `CXXFLAGS=-pthread`); + buildEnv.params.push('-e', `LDFLAGS=-pthread`); + } } console.log(`${platform} is compiling...`); const t0 = performance.now(); - const cmakeDir = state.config.build ? `${state.config.paths.build}/source` : state.config.paths.cmakeDir; + const cmakeDir = state.config.build.withBuildConfig ? `${state.config.paths.build}/source` : state.config.paths.cmakeDir; if (state.config.build?.beforeRun) { const dataList = state.config.build?.beforeRun(cmakeDir); diff --git a/packages/cpp.js/src/actions/createXCFramework.js b/cppjs-core/cpp.js/src/actions/createXCFramework.js similarity index 100% rename from packages/cpp.js/src/actions/createXCFramework.js rename to cppjs-core/cpp.js/src/actions/createXCFramework.js diff --git a/cppjs-core/cpp.js/src/actions/extensions.js b/cppjs-core/cpp.js/src/actions/extensions.js new file mode 100644 index 00000000..a59a3251 --- /dev/null +++ b/cppjs-core/cpp.js/src/actions/extensions.js @@ -0,0 +1,7 @@ +import state from '../state/index.js'; + +export default function triggerExtensions(fileName, hook, params = []) { + state.config.extensions?.forEach(e => { + e?.[fileName]?.[hook](state, ...params); + }); +} diff --git a/packages/cpp.js/src/actions/getAllBridges.js b/cppjs-core/cpp.js/src/actions/getAllBridges.js similarity index 100% rename from packages/cpp.js/src/actions/getAllBridges.js rename to cppjs-core/cpp.js/src/actions/getAllBridges.js diff --git a/packages/cpp.js/src/actions/getCmakeParameters.js b/cppjs-core/cpp.js/src/actions/getCmakeParameters.js similarity index 68% rename from packages/cpp.js/src/actions/getCmakeParameters.js rename to cppjs-core/cpp.js/src/actions/getCmakeParameters.js index 97c9a26d..c840c2e3 100644 --- a/packages/cpp.js/src/actions/getCmakeParameters.js +++ b/cppjs-core/cpp.js/src/actions/getCmakeParameters.js @@ -1,4 +1,6 @@ +import fs from 'node:fs'; import state from '../state/index.js'; +import getData from './getData.js'; export default function getCmakeParameters(platform, options = {}) { if (!options || typeof options !== 'object' || Array.isArray(options)) { @@ -35,6 +37,19 @@ export default function getCmakeParameters(platform, options = {}) { const buildType = sharedPlatforms.includes(basePlatform) ? 'SHARED' : 'STATIC'; const otherBuildType = buildType === 'STATIC' ? 'SHARED' : 'STATIC'; + const cmakeCompileOptions = [...new Set(getData('cmake', platform)?.compileOptions || [])]; + + const pathsOfCmakeDepends = dependParams.pathsOfCmakeDepends.split(';'); + const nameOfCmakeDepends = dependParams.nameOfCmakeDepends.split(';'); + const pathsOfCmakeDependsFilteredByPlatform = []; + const nameOfCmakeDependsFilteredByPlatform = nameOfCmakeDepends; + pathsOfCmakeDepends.forEach((d, i) => { + if (fs.existsSync(`${d}/${platform}`)) { + pathsOfCmakeDependsFilteredByPlatform.push(d); + // nameOfCmakeDependsFilteredByPlatform.push(nameOfCmakeDepends[i]); + } + }); + params.push(...[ `-DPROJECT_NAME=${options.name || state.config.general.name}`, `-DBASE_DIR=${state.config.paths.project}`, @@ -43,11 +58,12 @@ export default function getCmakeParameters(platform, options = {}) { `-DNATIVE_GLOB=${nativeGlob.join(';')}`, `-DHEADER_GLOB=${headerGlob.join(';')}`, `-DHEADER_DIR=${headerDirs.join(';')}`, - `-DDEPENDS_CMAKE_PATHS=${dependParams.pathsOfCmakeDepends}`, - `-DDEPENDS_CMAKE_NAMES=${dependParams.nameOfCmakeDepends}`, + `-DDEPENDS_CMAKE_PATHS=${pathsOfCmakeDependsFilteredByPlatform.join(';')}`, + `-DDEPENDS_CMAKE_NAMES=${nameOfCmakeDependsFilteredByPlatform.join(';')}`, `-DBRIDGE_DIR=${state.config.paths.build}/bridge`, `-DBUILD_TYPE=${buildType}`, `-DBUILD_${otherBuildType}_LIBS=OFF`, + `-DCOMPILE_OPTIONS=${cmakeCompileOptions.join(';')}`, // '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache', ...(options.buildSource !== false ? ['-DBUILD_SOURCE=TRUE'] : []), ]); diff --git a/packages/cpp.js/src/actions/getData.js b/cppjs-core/cpp.js/src/actions/getData.js similarity index 74% rename from packages/cpp.js/src/actions/getData.js rename to cppjs-core/cpp.js/src/actions/getData.js index 75ddb61d..dd0ade82 100644 --- a/packages/cpp.js/src/actions/getData.js +++ b/cppjs-core/cpp.js/src/actions/getData.js @@ -10,7 +10,13 @@ function getRecursiveData(obj, config, dependency, field, platform, subPlatform) const key = `${dependency.paths.project}/dist/prebuilt/${platform}/${dKey}`; obj[key] = value; } else { - obj[dKey] = value; + if (typeof value === 'object' && Array.isArray(value)) { + obj[dKey] = [...(obj[dKey] || []), ...value]; + } else if (typeof value === 'object') { + obj[dKey] = {...(obj[dKey] || {}), ...value}; + } else { + obj[dKey] = value; + } } }); } diff --git a/packages/cpp.js/src/actions/getDependLibs.js b/cppjs-core/cpp.js/src/actions/getDependLibs.js similarity index 100% rename from packages/cpp.js/src/actions/getDependLibs.js rename to cppjs-core/cpp.js/src/actions/getDependLibs.js diff --git a/packages/cpp.js/src/actions/run.js b/cppjs-core/cpp.js/src/actions/run.js similarity index 98% rename from packages/cpp.js/src/actions/run.js rename to cppjs-core/cpp.js/src/actions/run.js index fe70b6e2..48595470 100644 --- a/packages/cpp.js/src/actions/run.js +++ b/cppjs-core/cpp.js/src/actions/run.js @@ -7,7 +7,7 @@ import state from '../state/index.js'; const CROSSCOMPILER_ARM64 = 'aarch64-linux-android33'; const CROSSCOMPILER_x86_64 = 'x86_64-linux-android33'; -const ANDROID_NDK = '/opt/android-sdk/ndk/25.2.9519653'; +const ANDROID_NDK = '/opt/android-sdk/ndk/27.3.13750724'; const t = `${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin`; const t2 = `${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64`; @@ -96,7 +96,7 @@ export default function run(program, params = [], platformPrefix = null, platfor if (program === null) { switch (basePlatform) { case 'Emscripten': - platformParams = ['-e', 'CXXFLAGS=-fexceptions', '-e', 'CFLAGS=-fexceptions']; + platformParams = ['-e', 'CXXFLAGS=-fwasm-exceptions', '-e', 'CFLAGS=-fwasm-exceptions']; if (params[0].includes('configure')) dProgram = 'emconfigure'; else if (params[0] === 'make') dProgram = 'emmake'; else if (params[0] === 'cmake') dProgram = 'emcmake'; diff --git a/packages/cpp.js/src/assets/CMakeLists.txt b/cppjs-core/cpp.js/src/assets/CMakeLists.txt similarity index 94% rename from packages/cpp.js/src/assets/CMakeLists.txt rename to cppjs-core/cpp.js/src/assets/CMakeLists.txt index 60d32e97..ac073c95 100644 --- a/packages/cpp.js/src/assets/CMakeLists.txt +++ b/cppjs-core/cpp.js/src/assets/CMakeLists.txt @@ -39,6 +39,10 @@ if(ANDROID) set(EXTRA_LINK_LIBRARIES "log") endif() +if (NOT ${COMPILE_OPTIONS} STREQUAL "") + target_compile_options("${PROJECT_NAME}" PUBLIC "${COMPILE_OPTIONS}") +endif() + if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "") target_link_libraries("${PROJECT_NAME}" "${DEPENDS_CMAKE_NAMES}" "${EXTRA_LINK_LIBRARIES}") endif() diff --git a/packages/cpp.js/src/assets/browser.js b/cppjs-core/cpp.js/src/assets/browser.js similarity index 85% rename from packages/cpp.js/src/assets/browser.js rename to cppjs-core/cpp.js/src/assets/browser.js index 66ca5582..7cb55639 100644 --- a/packages/cpp.js/src/assets/browser.js +++ b/cppjs-core/cpp.js/src/assets/browser.js @@ -36,6 +36,27 @@ function initCppJs(userConfig = {}) { const config = mergeDeep(systemConfig, userConfig); + const locateFile = (fileName) => { + let path = fileName; + if (config.paths && config.paths.wasm && fileName.endsWith('.wasm')) { + path = config.paths.wasm; + } else if (config.paths && config.paths.data && (fileName.endsWith('.data.txt') || fileName.endsWith('.data'))) { + path = config.paths.data; + } + + let prefix = ''; + if (config.path) { + prefix = config.path; + if (prefix.slice(-1) !== '/') prefix += '/'; + } + + let output = prefix + path; + if (output.endsWith('.data')) output += '.txt'; + if (output.substring(0, 4) !== 'http' && output[0] !== '/') output = `/${output}`; + + return output; + }; + cppJsPromise = new Promise((resolve, reject) => { const m = { print(text) { @@ -52,26 +73,8 @@ function initCppJs(userConfig = {}) { console.error(`wasm stderr: ${text}`); } }, - locateFile(fileName) { - let path = fileName; - if (config.paths && config.paths.wasm && fileName.endsWith('.wasm')) { - path = config.paths.wasm; - } else if (config.paths && config.paths.data && (fileName.endsWith('.data.txt') || fileName.endsWith('.data'))) { - path = config.paths.data; - } - - let prefix = ''; - if (config.path) { - prefix = config.path; - if (prefix.slice(-1) !== '/') prefix += '/'; - } - - let output = prefix + path; - if (output.endsWith('.data')) output += '.txt'; - if (output.substring(0, 4) !== 'http' && output[0] !== '/') output = `/${output}`; - return output; - }, - + mainScriptUrlOrBlob: locateFile(config.paths.worker === 'cpp.js' ? 'cpp.js' : config.paths.worker.replace('.js', '.browser.js')), + locateFile, preRun: [ ({ ENV }) => { if (ENV && config && config.env) { @@ -83,8 +86,8 @@ function initCppJs(userConfig = {}) { }, ], onRuntimeInitialized() { - m.FS.mkdir(VIRTUAL_PATH); - m.FS.mkdir(AUTO_MOUNTED_PATH); + // m.FS.mkdir(VIRTUAL_PATH); + // m.FS.mkdir(AUTO_MOUNTED_PATH); if (config.onRuntimeInitialized) config.onRuntimeInitialized(m); }, generateVirtualPath() { diff --git a/packages/cpp.js/src/assets/commonBridges.cpp b/cppjs-core/cpp.js/src/assets/commonBridges.cpp similarity index 100% rename from packages/cpp.js/src/assets/commonBridges.cpp rename to cppjs-core/cpp.js/src/assets/commonBridges.cpp diff --git a/packages/cpp.js/src/assets/cppjsEmptySource.cpp b/cppjs-core/cpp.js/src/assets/cppjsEmptySource.cpp similarity index 100% rename from packages/cpp.js/src/assets/cppjsEmptySource.cpp rename to cppjs-core/cpp.js/src/assets/cppjsEmptySource.cpp diff --git a/cppjs-core/cpp.js/src/assets/dist.cmake b/cppjs-core/cpp.js/src/assets/dist.cmake new file mode 100644 index 00000000..335cd170 --- /dev/null +++ b/cppjs-core/cpp.js/src/assets/dist.cmake @@ -0,0 +1,66 @@ +if(ANDROID) + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_ANDROID_ARCH_ABI}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") +elseif(APPLE) + if (CMAKE_SYSTEM_NAME STREQUAL "iOS") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/../..") + else() + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") + endif() +elseif(UNIX) + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") +else() + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") +endif() + +set(MY_LIST "___PROJECT_HOST___") +LIST(FIND MY_LIST "${PACKAGE_HOST}" PACKAGE_HOST_INDEX) +if(NOT PACKAGE_HOST_INDEX EQUAL -1) + cmake_minimum_required(VERSION 3.28) + set(CMAKE_CXX_STANDARD 11) + set(PROJECT_NAME "___PROJECT_NAME___") + set(PROJECT_LIBS "___PROJECT_LIBS___") + project("${PROJECT_NAME}") + + if(ANDROID) + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_ANDROID_ARCH_ABI}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") + elseif(APPLE) + if (CMAKE_SYSTEM_NAME STREQUAL "iOS") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/../..") + else() + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") + endif() + elseif(UNIX) + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") + else() + set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") + set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") + endif() + + set(PROJECT_LIBS_DIR) + foreach(L IN LISTS PROJECT_LIBS) + SET(FOUND_LIB "FOUND_LIB-NOTFOUND") + find_library(FOUND_LIB + NAMES "${L}" + PATHS "${PACKAGE_DIR}" + NO_CACHE + NO_DEFAULT_PATH + NO_CMAKE_FIND_ROOT_PATH + REQUIRED + ) + LIST(APPEND PROJECT_LIBS_DIR ${FOUND_LIB}) + endforeach() + + add_library("${PROJECT_NAME}" INTERFACE) + target_link_libraries("${PROJECT_NAME}" INTERFACE "${PROJECT_LIBS_DIR}") + + if(NOT APPLE) + target_include_directories("${PROJECT_NAME}" INTERFACE "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/include") + endif() +endif() diff --git a/packages/cpp.js/src/assets/ios.toolchain.cmake b/cppjs-core/cpp.js/src/assets/ios.toolchain.cmake similarity index 100% rename from packages/cpp.js/src/assets/ios.toolchain.cmake rename to cppjs-core/cpp.js/src/assets/ios.toolchain.cmake diff --git a/packages/cpp.js/src/assets/node.js b/cppjs-core/cpp.js/src/assets/node.js similarity index 100% rename from packages/cpp.js/src/assets/node.js rename to cppjs-core/cpp.js/src/assets/node.js diff --git a/packages/cpp.js/src/bin.js b/cppjs-core/cpp.js/src/bin.js similarity index 90% rename from packages/cpp.js/src/bin.js rename to cppjs-core/cpp.js/src/bin.js index 5b624d36..6112cb23 100755 --- a/packages/cpp.js/src/bin.js +++ b/cppjs-core/cpp.js/src/bin.js @@ -55,7 +55,7 @@ program.parse(process.argv); switch (program.args[0]) { case 'build': { const { platform } = commandBuild.opts(); - if (state.config.build) { + if (state.config.build.withBuildConfig) { buildExternal(platform); } else { build(platform); @@ -228,7 +228,7 @@ async function buildExternal(platform) { return; } - const { getURL, replaceList, copyToSource } = state.config.build; + const { getURL, replaceList, copyToSource, copyToDist } = state.config.build; const isNewlyCreated = await downloadAndExtractFile(getURL(version), state.config.paths.build); const sourcePath = `${state.config.paths.build}/source`; if (isNewlyCreated && replaceList) { @@ -246,6 +246,23 @@ async function buildExternal(platform) { } buildLib(platform); + + if (copyToDist) { + Object.entries(copyToDist).forEach(([key, value]) => { + const values = []; + if (Array.isArray(value)) { + values.push(...value); + } else { + values.push(value); + } + values.forEach(v => { + const targetPath = `${state.config.paths.output}/prebuilt/${v}`; + if (!fs.existsSync(targetPath)) { + fs.copyFileSync(`${state.config.paths.project}/${key}`, targetPath); + } + }); + }); + } } async function build(platform) { @@ -277,12 +294,16 @@ function buildLib(platform) { } }); - fs.cpSync(`${state.config.paths.build}/Source-Release/prebuilt`, `${state.config.paths.output}/prebuilt`, { recursive: true, dereference: true }); + if (fs.existsSync(`${state.config.paths.build}/Source-Release/prebuilt`)) { + fs.cpSync(`${state.config.paths.build}/Source-Release/prebuilt`, `${state.config.paths.output}/prebuilt`, { recursive: true, dereference: true }); + } createXCFramework(); const distCmakeContent = fs.readFileSync(`${state.config.paths.cli}/assets/dist.cmake`, { encoding: 'utf8', flag: 'r' }) - .replace('___PROJECT_NAME___', state.config.general.name).replace('___PROJECT_LIBS___', state.config.export.libName.join(';')); + .replace('___PROJECT_NAME___', state.config.general.name) + .replace('___PROJECT_HOST___', state.platforms[platform].join(';')) + .replace('___PROJECT_LIBS___', state.config.export.libName.join(';')); fs.writeFileSync(`${state.config.paths.output}/prebuilt/CMakeLists.txt`, distCmakeContent); } @@ -323,4 +344,7 @@ async function createWasmJs() { if (fs.existsSync(`${state.config.paths.build}/${state.config.general.name}.data.txt`)) { fs.copyFileSync(`${state.config.paths.build}/${state.config.general.name}.data.txt`, `${state.config.paths.output}/${state.config.general.name}.data.txt`); } + /* if (fs.existsSync(`${state.config.paths.build}/${state.config.general.name}.js`)) { + fs.copyFileSync(`${state.config.paths.build}/${state.config.general.name}.js`, `${state.config.paths.output}/${state.config.general.name}.js`); + } */ } diff --git a/packages/cpp.js/src/index.js b/cppjs-core/cpp.js/src/index.js similarity index 100% rename from packages/cpp.js/src/index.js rename to cppjs-core/cpp.js/src/index.js diff --git a/packages/cpp.js/src/integration/getCppJsScript.js b/cppjs-core/cpp.js/src/integration/getCppJsScript.js similarity index 96% rename from packages/cpp.js/src/integration/getCppJsScript.js rename to cppjs-core/cpp.js/src/integration/getCppJsScript.js index 355c3344..f1d07811 100644 --- a/packages/cpp.js/src/integration/getCppJsScript.js +++ b/cppjs-core/cpp.js/src/integration/getCppJsScript.js @@ -46,7 +46,7 @@ function getReactNativeScript(env, modulePrefix) { const CPPJS_DATA_PATH = Module.CppJS.getEnv('CPPJS_DATA_PATH'); Object.entries(env).forEach(([key, value]) => { - Module.CppJS.setEnv(key, value.replace('_CPPJS_DATA_PATH_', CPPJS_DATA_PATH), true); + Module.CppJS.setEnv(key, value.replace('_CPPJS_DATA_PATH_', CPPJS_DATA_PATH), false); }); } @@ -72,7 +72,8 @@ function getWebScript(env, modulePrefix) { env: {...${env}, ...config.env}, paths: { wasm: 'cpp.wasm', - data: 'cpp.data.txt' + data: 'cpp.data.txt', + worker: 'cpp.js' } }`; diff --git a/packages/cpp.js/src/integration/getDependFilePath.js b/cppjs-core/cpp.js/src/integration/getDependFilePath.js similarity index 100% rename from packages/cpp.js/src/integration/getDependFilePath.js rename to cppjs-core/cpp.js/src/integration/getDependFilePath.js diff --git a/packages/cpp.js/src/state/calculateDependencyParameters.js b/cppjs-core/cpp.js/src/state/calculateDependencyParameters.js similarity index 100% rename from packages/cpp.js/src/state/calculateDependencyParameters.js rename to cppjs-core/cpp.js/src/state/calculateDependencyParameters.js diff --git a/packages/cpp.js/src/state/index.js b/cppjs-core/cpp.js/src/state/index.js similarity index 85% rename from packages/cpp.js/src/state/index.js rename to cppjs-core/cpp.js/src/state/index.js index 4ec7eae8..e1bffcd7 100644 --- a/packages/cpp.js/src/state/index.js +++ b/cppjs-core/cpp.js/src/state/index.js @@ -45,12 +45,15 @@ function setAllDependecyPaths() { state.config.allDependencyPaths = {}; state.platforms.All.forEach((platform) => { const basePlatform = platform.split('-', 1)[0]; - state.config.allDependencyPaths[platform] = {}; + state.config.allDependencyPaths[platform] = { cmake: {} }; state.config.allDependencies.forEach((d) => { + state.config.allDependencyPaths[platform].cmake[d.general.name] = `${d.paths.output}/prebuilt`; d.export.libName.forEach((name) => { state.config.allDependencyPaths[platform][name] = { root: `${d.paths.output}/prebuilt/${platform}`, }; + const platformConfig = d.platform[platform] || {}; + const isDynamicLib = basePlatform === 'Android' && platformConfig.libType !== 'static'; const dep = state.config.allDependencyPaths[platform][name]; if (basePlatform === 'iOS') { let xcRoot; @@ -66,7 +69,7 @@ function setAllDependecyPaths() { } else { dep.header = `${dep.root}/include`; dep.libPath = `${dep.root}/lib`; - dep.lib = `${dep.libPath}/lib${name}.${basePlatform === 'Android' ? 'so' : 'a'}`; + dep.lib = `${dep.libPath}/lib${name}.${isDynamicLib ? 'so' : 'a'}`; dep.bin = `${dep.root}/bin`; } }); diff --git a/packages/cpp.js/src/state/loadConfig.js b/cppjs-core/cpp.js/src/state/loadConfig.js similarity index 90% rename from packages/cpp.js/src/state/loadConfig.js rename to cppjs-core/cpp.js/src/state/loadConfig.js index 1a43cdda..897e953c 100644 --- a/packages/cpp.js/src/state/loadConfig.js +++ b/cppjs-core/cpp.js/src/state/loadConfig.js @@ -12,7 +12,12 @@ import calculateDependencyParameters from './calculateDependencyParameters.js'; export default async function loadConfig(configDir = process.cwd(), configName = 'cppjs.config') { const config = await loadJs(configDir, configName) || {}; const output = getFilledConfig(config); - output.build = await loadJs(configDir, 'cppjs.build'); + const build = await loadJs(configDir, 'cppjs.build'); + + if (build) { + build.withBuildConfig = true; + } + output.build = { ...build, ...output.build }; output.paths.systemConfig = `${os.homedir()}/.cppjs.json`; output.system = loadJson(output.paths.systemConfig) || {}; @@ -34,6 +39,8 @@ function getFilledConfig(config, options = { isDepend: false }) { ext: config.ext || {}, export: config.export || {}, platform: config.platform || {}, + build: config.build || {}, + extensions: config.extensions || [], package: null, }; @@ -97,6 +104,16 @@ function getFilledConfig(config, options = { isDepend: false }) { return Object.values(output); })(); + newConfig.extensions?.forEach(e => { + e?.loadConfig?.after(newConfig); + }); + + newConfig.build.usePthread = newConfig.build.usePthread || false; + + if (!newConfig.build.usePthread) { + newConfig.build.usePthread = newConfig.allDependencies.some((d) => d?.build?.usePthread); + } + newConfig.dependencyParameters = calculateDependencyParameters(newConfig); // newConfig.cmakeParameters = getCmakeParameters(newConfig); diff --git a/packages/cpp.js/src/utils/downloadAndExtractFile.js b/cppjs-core/cpp.js/src/utils/downloadAndExtractFile.js similarity index 100% rename from packages/cpp.js/src/utils/downloadAndExtractFile.js rename to cppjs-core/cpp.js/src/utils/downloadAndExtractFile.js diff --git a/cppjs-core/cpp.js/src/utils/findFiles.js b/cppjs-core/cpp.js/src/utils/findFiles.js new file mode 100644 index 00000000..f5fb6e14 --- /dev/null +++ b/cppjs-core/cpp.js/src/utils/findFiles.js @@ -0,0 +1,5 @@ +import { glob } from 'glob'; + +export default function findFiles(regex, options = {}) { + return glob.sync(regex, { absolute: true, posix: true, follow: true, ...options }).map(p => p.replace('//?/', '')); +} diff --git a/packages/cpp.js/src/utils/fixPackageName.js b/cppjs-core/cpp.js/src/utils/fixPackageName.js similarity index 100% rename from packages/cpp.js/src/utils/fixPackageName.js rename to cppjs-core/cpp.js/src/utils/fixPackageName.js diff --git a/packages/cpp.js/src/utils/getAbsolutePath.js b/cppjs-core/cpp.js/src/utils/getAbsolutePath.js similarity index 100% rename from packages/cpp.js/src/utils/getAbsolutePath.js rename to cppjs-core/cpp.js/src/utils/getAbsolutePath.js diff --git a/packages/cpp.js/src/utils/getCMakeListsFilePath.js b/cppjs-core/cpp.js/src/utils/getCMakeListsFilePath.js similarity index 100% rename from packages/cpp.js/src/utils/getCMakeListsFilePath.js rename to cppjs-core/cpp.js/src/utils/getCMakeListsFilePath.js diff --git a/packages/cpp.js/src/utils/getOsUserAndGroupId.js b/cppjs-core/cpp.js/src/utils/getOsUserAndGroupId.js similarity index 100% rename from packages/cpp.js/src/utils/getOsUserAndGroupId.js rename to cppjs-core/cpp.js/src/utils/getOsUserAndGroupId.js diff --git a/packages/cpp.js/src/utils/getParentPath.js b/cppjs-core/cpp.js/src/utils/getParentPath.js similarity index 100% rename from packages/cpp.js/src/utils/getParentPath.js rename to cppjs-core/cpp.js/src/utils/getParentPath.js diff --git a/packages/cpp.js/src/utils/hash.js b/cppjs-core/cpp.js/src/utils/hash.js similarity index 100% rename from packages/cpp.js/src/utils/hash.js rename to cppjs-core/cpp.js/src/utils/hash.js diff --git a/packages/cpp.js/src/utils/loadJs.js b/cppjs-core/cpp.js/src/utils/loadJs.js similarity index 100% rename from packages/cpp.js/src/utils/loadJs.js rename to cppjs-core/cpp.js/src/utils/loadJs.js diff --git a/packages/cpp.js/src/utils/loadJson.js b/cppjs-core/cpp.js/src/utils/loadJson.js similarity index 100% rename from packages/cpp.js/src/utils/loadJson.js rename to cppjs-core/cpp.js/src/utils/loadJson.js diff --git a/packages/cpp.js/src/utils/pullDockerImage.js b/cppjs-core/cpp.js/src/utils/pullDockerImage.js similarity index 96% rename from packages/cpp.js/src/utils/pullDockerImage.js rename to cppjs-core/cpp.js/src/utils/pullDockerImage.js index 12c08721..1cc7e04b 100644 --- a/packages/cpp.js/src/utils/pullDockerImage.js +++ b/cppjs-core/cpp.js/src/utils/pullDockerImage.js @@ -3,7 +3,7 @@ import { execFileSync } from 'node:child_process'; let isDockerImageAvailable = false; export function getDockerImage() { - return 'bugra9/cpp.js:0.2.8'; + return 'bugra9/cpp.js:0.3.0'; } export default function pullDockerImage() { diff --git a/packages/cpp.js/src/utils/systemKeys.js b/cppjs-core/cpp.js/src/utils/systemKeys.js similarity index 100% rename from packages/cpp.js/src/utils/systemKeys.js rename to cppjs-core/cpp.js/src/utils/systemKeys.js diff --git a/packages/cpp.js/src/utils/writeJson.js b/cppjs-core/cpp.js/src/utils/writeJson.js similarity index 100% rename from packages/cpp.js/src/utils/writeJson.js rename to cppjs-core/cpp.js/src/utils/writeJson.js diff --git a/packages/cppjs-core-create-app/.npmignore b/cppjs-core/cppjs-core-create-app/.npmignore similarity index 100% rename from packages/cppjs-core-create-app/.npmignore rename to cppjs-core/cppjs-core-create-app/.npmignore diff --git a/packages/cppjs-core-create-app/CHANGELOG.md b/cppjs-core/cppjs-core-create-app/CHANGELOG.md similarity index 100% rename from packages/cppjs-core-create-app/CHANGELOG.md rename to cppjs-core/cppjs-core-create-app/CHANGELOG.md diff --git a/packages/cppjs-core-create-app/README.md b/cppjs-core/cppjs-core-create-app/README.md similarity index 100% rename from packages/cppjs-core-create-app/README.md rename to cppjs-core/cppjs-core-create-app/README.md diff --git a/packages/cppjs-core-create-app/package.json b/cppjs-core/cppjs-core-create-app/package.json similarity index 100% rename from packages/cppjs-core-create-app/package.json rename to cppjs-core/cppjs-core-create-app/package.json diff --git a/packages/cppjs-core-create-app/src/index.js b/cppjs-core/cppjs-core-create-app/src/index.js similarity index 100% rename from packages/cppjs-core-create-app/src/index.js rename to cppjs-core/cppjs-core-create-app/src/index.js diff --git a/packages/cppjs-core-create-app/src/samples.js b/cppjs-core/cppjs-core-create-app/src/samples.js similarity index 100% rename from packages/cppjs-core-create-app/src/samples.js rename to cppjs-core/cppjs-core-create-app/src/samples.js diff --git a/packages/cppjs-core-create-app/src/utils.js b/cppjs-core/cppjs-core-create-app/src/utils.js similarity index 100% rename from packages/cppjs-core-create-app/src/utils.js rename to cppjs-core/cppjs-core-create-app/src/utils.js diff --git a/packages/cppjs-core-docker/CHANGELOG.md b/cppjs-core/cppjs-core-docker/CHANGELOG.md similarity index 100% rename from packages/cppjs-core-docker/CHANGELOG.md rename to cppjs-core/cppjs-core-docker/CHANGELOG.md diff --git a/packages/cppjs-core-docker/Dockerfile b/cppjs-core/cppjs-core-docker/Dockerfile similarity index 84% rename from packages/cppjs-core-docker/Dockerfile rename to cppjs-core/cppjs-core-docker/Dockerfile index 8b53d2d7..55e88c3c 100644 --- a/packages/cppjs-core-docker/Dockerfile +++ b/cppjs-core/cppjs-core-docker/Dockerfile @@ -1,4 +1,4 @@ -FROM emscripten/emsdk:3.1.51 +FROM emscripten/emsdk:4.0.3 RUN apt-get update RUN apt-get install -y --no-install-recommends sqlite3 openjdk-21-jdk ca-certificates gpg @@ -9,19 +9,19 @@ RUN apt-get update RUN test -f /usr/share/doc/kitware-archive-keyring/copyright || rm /usr/share/keyrings/kitware-archive-keyring.gpg RUN apt-get install -y --no-install-recommends kitware-archive-keyring cmake -ENV NDK_VERSION=25.2.9519653 +ENV NDK_VERSION=27.3.13750724 ENV ANDROID_SDK_ROOT /opt/android-sdk ENV NDK_ROOT "${ANDROID_SDK_ROOT}/ndk/${NDK_VERSION}" -RUN wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -P /tmp && \ - unzip -q /tmp/commandlinetools-linux-11076708_latest.zip -d /tmp && \ +RUN wget https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip -P /tmp && \ + unzip -q /tmp/commandlinetools-linux-13114758_latest.zip -d /tmp && \ yes | /tmp/cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} --licenses && \ /tmp/cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} --install "ndk;${NDK_VERSION}" && \ - rm -r /tmp/commandlinetools-linux-11076708_latest.zip /tmp/cmdline-tools && \ + rm -r /tmp/commandlinetools-linux-13114758_latest.zip /tmp/cmdline-tools && \ mkdir -p /root/.android/ && touch /root/.android/repositories.cfg -WORKDIR /emsdk/upstream/emscripten/src/embind -RUN wget https://raw.githubusercontent.com/bugra9/emscripten/embind-overloading-support/src/embind/embind.js -O embind.js +WORKDIR /emsdk/upstream/emscripten/src/lib +RUN wget https://raw.githubusercontent.com/bugra9/emscripten/embind-overloading-support/src/lib/libembind.js -O libembind.js WORKDIR /emsdk/upstream/emscripten RUN sed -i 's/smart_ptr(smartPtrName);/ /g' ./system/include/emscripten/bind.h; diff --git a/packages/cppjs-core-docker/DraftWindowsDockerfile b/cppjs-core/cppjs-core-docker/DraftWindowsDockerfile similarity index 100% rename from packages/cppjs-core-docker/DraftWindowsDockerfile rename to cppjs-core/cppjs-core-docker/DraftWindowsDockerfile diff --git a/packages/cppjs-core-docker/README.md b/cppjs-core/cppjs-core-docker/README.md similarity index 100% rename from packages/cppjs-core-docker/README.md rename to cppjs-core/cppjs-core-docker/README.md diff --git a/packages/cppjs-core-docker/package.json b/cppjs-core/cppjs-core-docker/package.json similarity index 87% rename from packages/cppjs-core-docker/package.json rename to cppjs-core/cppjs-core-docker/package.json index c9b790ad..961eefa0 100644 --- a/packages/cppjs-core-docker/package.json +++ b/cppjs-core/cppjs-core-docker/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": "true", "scripts": { - "build": "docker build --no-cache -t bugra9/cpp.js:latest -t bugra9/cpp.js:0.2.8 .", + "build": "docker build --no-cache -t bugra9/cpp.js:latest -t bugra9/cpp.js:0.3.0 .", "push": "docker push bugra9/cpp.js --all-tags" } -} +} \ No newline at end of file diff --git a/packages/cppjs-core-embind-jsi/.gitignore b/cppjs-core/cppjs-core-embind-jsi/.gitignore similarity index 100% rename from packages/cppjs-core-embind-jsi/.gitignore rename to cppjs-core/cppjs-core-embind-jsi/.gitignore diff --git a/packages/cppjs-core-embind-jsi/.npmignore b/cppjs-core/cppjs-core-embind-jsi/.npmignore similarity index 100% rename from packages/cppjs-core-embind-jsi/.npmignore rename to cppjs-core/cppjs-core-embind-jsi/.npmignore diff --git a/packages/cppjs-core-embind-jsi/CHANGELOG.md b/cppjs-core/cppjs-core-embind-jsi/CHANGELOG.md similarity index 100% rename from packages/cppjs-core-embind-jsi/CHANGELOG.md rename to cppjs-core/cppjs-core-embind-jsi/CHANGELOG.md diff --git a/packages/cppjs-core-embind-jsi/README.md b/cppjs-core/cppjs-core-embind-jsi/README.md similarity index 100% rename from packages/cppjs-core-embind-jsi/README.md rename to cppjs-core/cppjs-core-embind-jsi/README.md diff --git a/packages/cppjs-core-embind-jsi/cpp/CMakeLists.txt b/cppjs-core/cppjs-core-embind-jsi/cpp/CMakeLists.txt similarity index 100% rename from packages/cppjs-core-embind-jsi/cpp/CMakeLists.txt rename to cppjs-core/cppjs-core-embind-jsi/cpp/CMakeLists.txt diff --git a/packages/cppjs-core-embind-jsi/cpp/src/emscripten/bind.cpp b/cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/bind.cpp similarity index 100% rename from packages/cppjs-core-embind-jsi/cpp/src/emscripten/bind.cpp rename to cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/bind.cpp diff --git a/packages/cppjs-core-embind-jsi/cpp/src/emscripten/bind.h b/cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/bind.h similarity index 100% rename from packages/cppjs-core-embind-jsi/cpp/src/emscripten/bind.h rename to cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/bind.h diff --git a/packages/cppjs-core-embind-jsi/cpp/src/emscripten/em_macros.h b/cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/em_macros.h similarity index 100% rename from packages/cppjs-core-embind-jsi/cpp/src/emscripten/em_macros.h rename to cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/em_macros.h diff --git a/packages/cppjs-core-embind-jsi/cpp/src/emscripten/val.h b/cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/val.h similarity index 100% rename from packages/cppjs-core-embind-jsi/cpp/src/emscripten/val.h rename to cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/val.h diff --git a/packages/cppjs-core-embind-jsi/cpp/src/emscripten/wire.h b/cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/wire.h similarity index 100% rename from packages/cppjs-core-embind-jsi/cpp/src/emscripten/wire.h rename to cppjs-core/cppjs-core-embind-jsi/cpp/src/emscripten/wire.h diff --git a/packages/cppjs-core-embind-jsi/cppjs.config.mjs b/cppjs-core/cppjs-core-embind-jsi/cppjs.config.mjs similarity index 100% rename from packages/cppjs-core-embind-jsi/cppjs.config.mjs rename to cppjs-core/cppjs-core-embind-jsi/cppjs.config.mjs diff --git a/packages/cppjs-core-embind-jsi/js/embind.js b/cppjs-core/cppjs-core-embind-jsi/js/embind.js similarity index 100% rename from packages/cppjs-core-embind-jsi/js/embind.js rename to cppjs-core/cppjs-core-embind-jsi/js/embind.js diff --git a/packages/cppjs-core-embind-jsi/package.json b/cppjs-core/cppjs-core-embind-jsi/package.json similarity index 100% rename from packages/cppjs-core-embind-jsi/package.json rename to cppjs-core/cppjs-core-embind-jsi/package.json diff --git a/cppjs-extensions/cppjs-extension-sample/index.mjs b/cppjs-extensions/cppjs-extension-sample/index.mjs new file mode 100644 index 00000000..f3855267 --- /dev/null +++ b/cppjs-extensions/cppjs-extension-sample/index.mjs @@ -0,0 +1,40 @@ +export default { + buildWasm: { + beforeBuildBrowser: (state, emccFlags) => { + if (state.config.build.usePthread && !emccFlags.includes('-pthread')) { + emccFlags.push('-pthread'); + emccFlags.push('-sPTHREAD_POOL_SIZE=4'); + } + }, + beforeBuildNodeJS: (state, emccFlags) => { + if (state.config.build.usePthread && !emccFlags.includes('-pthread')) { + emccFlags.push('-pthread'); + emccFlags.push('-sPTHREAD_POOL_SIZE=4'); + } + }, + }, + createLib: { + setFlagWithBuildConfig: (state, buildEnv, cFlags, ldFlags) => { + if (state.config.build.usePthread) { + cFlags.push('-pthread'); + ldFlags.push('-pthread'); + } + }, + setFlagWithoutBuildConfig: (state, buildEnv) => { + if (state.config.build.usePthread) { + buildEnv.params.push('-e', `CFLAGS=-pthread`); + buildEnv.params.push('-e', `CXXFLAGS=-pthread`); + buildEnv.params.push('-e', `LDFLAGS=-pthread`); + } + } + }, + loadConfig: { + after: (newConfig) => { + newConfig.build.usePthread = newConfig.build.usePthread || false; + + if (!newConfig.build.usePthread) { + newConfig.build.usePthread = newConfig.allDependencies.some((d) => d?.build?.usePthread); + } + } + } +}; diff --git a/cppjs-extensions/cppjs-extension-sample/package.json b/cppjs-extensions/cppjs-extension-sample/package.json new file mode 100644 index 00000000..abaa6543 --- /dev/null +++ b/cppjs-extensions/cppjs-extension-sample/package.json @@ -0,0 +1,4 @@ +{ + "name": "@cpp.js/extension-sample", + "main": "index.mjs" +} \ No newline at end of file diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.config.js new file mode 100644 index 00000000..73762f15 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/cppjs.config.js @@ -0,0 +1,33 @@ +import opensslAndroidMultithread from '@cpp.js/package-openssl-android-multithread/cppjs.config.js'; + +export default { + dependencies: [ + opensslAndroidMultithread, + ], + general: { + name: 'curl' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Android-arm64-v8a': { + env: { + CURL_CA_BUNDLE: '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + }, + 'Android-x86_64': { + env: { + CURL_CA_BUNDLE: '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/package.json new file mode 100644 index 00000000..e35458de --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-curl-android-multithread", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-openssl-android-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.config.js new file mode 100644 index 00000000..9830972a --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/cppjs.config.js @@ -0,0 +1,30 @@ +import opensslAndroid from '@cpp.js/package-openssl-android/cppjs.config.js'; + +export default { + dependencies: [ + opensslAndroid, + ], + general: { + name: 'curl' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Android-arm64-v8a': { + env: { + 'CURL_CA_BUNDLE': '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + }, + 'Android-x86_64': { + env: { + 'CURL_CA_BUNDLE': '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/package.json new file mode 100644 index 00000000..2f3c06ef --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-android/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-curl-android", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-openssl-android": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs-package-curl.podspec b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs-package-curl.podspec new file mode 100644 index 00000000..fd5fd72b --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs-package-curl.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "curl" + s.name = "cppjs-package-curl" + s.version = package["nativeVersion"] + s.summary = "Transferring data with URLs" + s.homepage = "https://curl.se/" + s.author = "CURL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'curl.xcframework' +end diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..4eca55f1 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/cppjs.config.js @@ -0,0 +1,33 @@ +import opensslIosMultithread from '@cpp.js/package-openssl-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + opensslIosMultithread, + ], + general: { + name: 'curl' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'iOS-iphoneos': { + env: { + CURL_CA_BUNDLE: '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + }, + 'iOS-iphonesimulator': { + env: { + CURL_CA_BUNDLE: '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/package.json new file mode 100644 index 00000000..e5eb664b --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-curl-ios-multithread", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-openssl-ios-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs-package-curl.podspec b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs-package-curl.podspec new file mode 100644 index 00000000..fd5fd72b --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs-package-curl.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "curl" + s.name = "cppjs-package-curl" + s.version = package["nativeVersion"] + s.summary = "Transferring data with URLs" + s.homepage = "https://curl.se/" + s.author = "CURL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'curl.xcframework' +end diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.config.js new file mode 100644 index 00000000..d0550209 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/cppjs.config.js @@ -0,0 +1,30 @@ +import opensslIos from '@cpp.js/package-openssl-ios/cppjs.config.js'; + +export default { + dependencies: [ + opensslIos, + ], + general: { + name: 'curl' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'iOS-iphoneos': { + env: { + 'CURL_CA_BUNDLE': '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + }, + 'iOS-iphonesimulator': { + env: { + 'CURL_CA_BUNDLE': '_CPPJS_DATA_PATH_/certs/cacert.pem' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/package.json new file mode 100644 index 00000000..712fa04f --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-curl-ios", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-openssl-ios": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.config.js new file mode 100644 index 00000000..769bef1a --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import curlWasmMultithread from '@cpp.js/package-curl-wasm-multithread/cppjs.config.js'; +import curlAndroidMultithread from '@cpp.js/package-curl-android-multithread/cppjs.config.js'; +import curlIosMultithread from '@cpp.js/package-curl-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + curlWasmMultithread, + curlAndroidMultithread, + curlIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/package.json new file mode 100644 index 00000000..7d65d473 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-curl-multithread", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-curl-wasm-multithread": "workspace:^", + "@cpp.js/package-curl-android-multithread": "workspace:^", + "@cpp.js/package-curl-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..0eb5a642 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/cppjs.config.js @@ -0,0 +1,31 @@ +import opensslWasmMultithread from '@cpp.js/package-openssl-wasm-multithread/cppjs.config.js'; + +export default { + dependencies: [ + opensslWasmMultithread, + ], + general: { + name: 'curl' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Emscripten-x86_64': { + binary: { + emccFlags: [ + '-s', + 'FETCH' + ] + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/package.json new file mode 100644 index 00000000..eb0bc1ee --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-curl-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-openssl-wasm-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.config.js new file mode 100644 index 00000000..dc6631f7 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/cppjs.config.js @@ -0,0 +1,28 @@ +import opensslWasm from '@cpp.js/package-openssl-wasm/cppjs.config.js'; + +export default { + dependencies: [ + opensslWasm, + ], + general: { + name: 'curl' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Emscripten-x86_64': { + binary: { + 'emccFlags': [ + '-s', + 'FETCH' + ] + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/package.json new file mode 100644 index 00000000..4d4dd24e --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-curl-wasm", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-openssl-wasm": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl/CHANGELOG.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/CHANGELOG.md new file mode 100644 index 00000000..b78b02cb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-curl + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl/LICENSE b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/LICENSE new file mode 100644 index 00000000..3fa85ebb --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/LICENSE @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2025, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl/README.md b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/README.md new file mode 100644 index 00000000..9ff76967 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/README.md @@ -0,0 +1,83 @@ +# @cpp.js/package-curl +**Precompiled CURL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-curl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import curl from '@cpp.js/package-curl/cppjs.config.js'; + +export default { + dependencies: [ ++ curl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the curl in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + ++size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { ++ size_t totalSize = size * nmemb; ++ output->append((char*)contents, totalSize); ++ return totalSize; ++} + +std::string Native::sample() { ++ std::string result = ""; ++ std::string response; ++ char errbuf[CURL_ERROR_SIZE*100]; ++ ++ CURL* curl = curl_easy_init(); // Initialize libcurl ++ curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); ++ curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL ++ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); ++ struct curl_slist *headers = NULL; ++ headers = curl_slist_append(headers, "Content-Type: application/json"); ++ headers = curl_slist_append(headers, "Accept: application/json"); ++ ++ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); ++ errbuf[0] = 0; ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string ++ CURLcode res = curl_easy_perform(curl); ++ if (res == CURLE_OK) { ++ result = "response: " + response; ++ } else { ++ std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); ++ result = "curl error: " + errorStr; ++ } ++ ++ curl_slist_free_all(headers); ++ curl_easy_cleanup(curl); ++ ++ return result; +} +``` + +## License +This project includes the precompiled CURL library, which is distributed under the [CURL License](https://github.com/curl/curl/blob/master/COPYING). + +CURL Homepage: [https://curl.se/](https://curl.se/) diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs-package-curl.podspec b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs-package-curl.podspec new file mode 100644 index 00000000..fd5fd72b --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs-package-curl.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "curl" + s.name = "cppjs-package-curl" + s.version = package["nativeVersion"] + s.summary = "Transferring data with URLs" + s.homepage = "https://curl.se/" + s.author = "CURL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'curl.xcframework' +end diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.build.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.build.js new file mode 100644 index 00000000..1a229c4d --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.build.js @@ -0,0 +1,182 @@ +const easyPerformAbove = ` +#ifdef __EMSCRIPTEN__ +static void on_success(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} + +static void on_error(emscripten_fetch_t *fetch) { + void **userData = (void **)fetch->userData; + volatile emscripten_fetch_t **fetch_result_ptr = (volatile emscripten_fetch_t **)userData[0]; + volatile int *fetch_completed_ptr = (volatile int *)userData[1]; + *fetch_result_ptr = fetch; + *fetch_completed_ptr = 1; +} +#endif +`; + +const easyPerformInside = ` +#ifdef __EMSCRIPTEN__ + char method[10] = "GET"; + switch (data->set.method) { + case HTTPREQ_GET: + strcpy(method, "GET"); + break; + case HTTPREQ_POST: + case HTTPREQ_POST_FORM: + case HTTPREQ_POST_MIME: + strcpy(method, "POST"); + break; + case HTTPREQ_PUT: + strcpy(method, "PUT"); + break; + case HTTPREQ_HEAD: + strcpy(method, "HEAD"); + break; + } + if (data->set.str[28]) { + strcpy(method, data->set.str[28]); + } + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, method); + if (data->set.postfields) { + attr.requestData = data->set.postfields; + attr.requestDataSize = strlen(data->set.postfields); + } + if (data->set.headers) { + int header_count = 0; + struct curl_slist* temp = data->set.headers; + while (temp) { + header_count++; + temp = temp->next; + } + + const char** result = (const char**)malloc(sizeof(char*) * (header_count * 2 + 1)); + + temp = data->set.headers; + int i = 0; + while (temp) { + char* header_line = strdup(temp->data); + char* colon = strchr(header_line, ':'); + + if (colon) { + *colon = '\0'; + char* value = colon + 1; + + while (*value == ' ') value++; + + result[i++] = strdup(header_line); + result[i++] = strdup(value); + } else {} + + free(header_line); + temp = temp->next; + } + result[i] = NULL; + + attr.requestHeaders = result; + } + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + + volatile int fetch_completed = 0; + volatile emscripten_fetch_t* fetch = NULL; + void* userData[2] = { (void*)&fetch, (void*)&fetch_completed }; + + attr.onsuccess = on_success; + attr.onerror = on_error; + attr.userData = userData; + + emscripten_fetch(&attr, data->state.url); + + while (!fetch_completed) { + emscripten_sleep(100); + } + + data->info.httpcode = fetch->status; + if (fetch->status == 200) { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else if (fetch->status >= 400) { + if (data->set.http_fail_on_error && data->set.errorbuffer) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.errorbuffer); + } else if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } else { + if (data->set.out) { + data->set.fwrite_func(fetch->data, 1, fetch->numBytes, data->set.out); + } + } + + if (attr.requestHeaders) { + for (int i = 0; attr.requestHeaders[i] != NULL; i++) { + free((void*)attr.requestHeaders[i]); + } + + free(attr.requestHeaders); + } + + emscripten_fetch_close(fetch); + + if (data->set.http_fail_on_error && fetch->status >= 400) { + return CURLE_HTTP_RETURNED_ERROR; + } + + return CURLE_OK; +#endif +`; + +const fetchImportString = ` +#ifdef __EMSCRIPTEN__ +#include +#include +#endif +`; + +const platformBuild = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'Android-arm64-v8a': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'Android-x86_64': ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_STATIC_LIBS=OFF'], + 'iOS-iphoneos': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], + 'iOS-iphonesimulator': ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_STATIC_LIBS=ON'], +}; + +export default { + getURL: (version) => `https://curl.se/download/curl-${version}.tar.gz`, + replaceList: [ + { + regex: 'static CURLcode easy_perform\\(struct Curl_easy \\*data, bool events\\)', + replacement: `${easyPerformAbove}\nstatic CURLcode easy_perform(struct Curl_easy *data, bool events)`, + paths: ['lib/easy.c'], + }, + { + regex: ' struct Curl\\_multi \\*multi\\;', + replacement: `${easyPerformInside}\n struct Curl_multi *multi;`, + paths: ['lib/easy.c'], + }, + { + regex: '#include "urldata.h"', + replacement: `${fetchImportString}\n#include "urldata.h"`, + paths: ['lib/easy.c'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `-DOPENSSL_INCLUDE_DIR=${depPaths.ssl.header}`, + `-DOPENSSL_SSL_LIBRARY=${depPaths.ssl.lib}`, + `-DOPENSSL_CRYPTO_LIBRARY=${depPaths.crypto.lib}`, + // `-DOPENSSL_CMAKE_PATH=${depPaths.cmake.openssl}`, + '-DBUILD_EXAMPLES=OFF', '-DBUILD_CURL_EXE=OFF', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DENABLE_CURL_MANUAL=OFF', // '-DCURL_DISABLE_THREADED_RESOLVER=ON','-DCURL_DISABLE_THREAD=ON', + '-DENABLE_NETRC=OFF', '-DCURL_USE_LIBPSL=OFF', '-DENABLE_IPV6=OFF', '-DENABLE_NTLMWB=OFF', + // '-DCURL_DISABLE_UNIX_SOCKETS=ON', + // '-DCURL_ENABLE_EXPORT_TARGET=OFF' + ], +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.config.js b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.config.js new file mode 100644 index 00000000..bc36f090 --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/cppjs.config.js @@ -0,0 +1,14 @@ +import curlWasm from '@cpp.js/package-curl-wasm/cppjs.config.js'; +import curlAndroid from '@cpp.js/package-curl-android/cppjs.config.js'; +import curlIos from '@cpp.js/package-curl-ios/cppjs.config.js'; + +export default { + dependencies: [ + curlWasm, + curlAndroid, + curlIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-curl/cppjs-package-curl/package.json b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/package.json new file mode 100644 index 00000000..3294efad --- /dev/null +++ b/cppjs-packages/cppjs-package-curl/cppjs-package-curl/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-curl", + "version": "1.0.0", + "nativeVersion": "8.13.0", + "description": "This package provides a CURL library compiled with Cpp.js, enabling seamless usage of CURL functionalities in JavaScript, WebAssembly and React Native projects. Client-side URL transfers for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-curl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "curl", + "keywords": [ + "curl", + "libcurl", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-curl-wasm": "workspace:^", + "@cpp.js/package-curl-android": "workspace:^", + "@cpp.js/package-curl-ios": "workspace:^" + } +} diff --git a/packages/cppjs-package-expat/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/.npmignore similarity index 100% rename from packages/cppjs-package-expat/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/.npmignore diff --git a/packages/cppjs-package-expat/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-expat/LICENSE rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/LICENSE diff --git a/packages/cppjs-package-expat/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-expat/README.md rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/README.md diff --git a/packages/cppjs-package-expat/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-expat/cppjs.build.js rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/cppjs.build.js diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/cppjs.config.js new file mode 100644 index 00000000..a7fbfaf8 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/cppjs.config.js @@ -0,0 +1,16 @@ +export default { + general: { + name: 'expat' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/package.json new file mode 100644 index 00000000..38ba3daa --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-expat-android-multithread", + "version": "1.1.0", + "nativeVersion": "2.7.1", + "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "expat", + "libexpat", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/packages/cppjs-package-geotiff/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/.npmignore similarity index 100% rename from packages/cppjs-package-geotiff/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/.npmignore diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/LICENSE new file mode 100644 index 00000000..ce9e5939 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +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. diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/README.md new file mode 100644 index 00000000..150d59c7 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-expat +**Precompiled expat library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-expat +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import expat from '@cpp.js/package-expat/cppjs.config.js'; + +export default { + dependencies: [ ++ expat + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the expat in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(XML_ExpatVersion()); +} +``` + +## License +This project includes the precompiled expat library, which is distributed under the [MIT License](https://github.com/libexpat/libexpat/blob/master/COPYING). + +Expat Homepage: [https://github.com/libexpat/libexpat](https://github.com/libexpat/libexpat) diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.build.js new file mode 100644 index 00000000..8fe26580 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.build.js @@ -0,0 +1,17 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://github.com/libexpat/libexpat/releases/download/R_${version.replaceAll('.', '_')}/expat-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + '--without-getrandom', '--without-sys-getrandom', + '--without-xmlwf', '--without-examples', '--without-tests', + ], +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.config.js new file mode 100644 index 00000000..01d8f71d --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/cppjs.config.js @@ -0,0 +1,13 @@ +export default { + general: { + name: 'expat' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/package.json new file mode 100644 index 00000000..4e157838 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-android/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-expat-android", + "version": "1.1.0", + "nativeVersion": "2.7.1", + "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "expat", + "libexpat", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/packages/cppjs-package-iconv/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/.npmignore similarity index 100% rename from packages/cppjs-package-iconv/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/.npmignore diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/LICENSE new file mode 100644 index 00000000..ce9e5939 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +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. diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/README.md new file mode 100644 index 00000000..150d59c7 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-expat +**Precompiled expat library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-expat +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import expat from '@cpp.js/package-expat/cppjs.config.js'; + +export default { + dependencies: [ ++ expat + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the expat in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(XML_ExpatVersion()); +} +``` + +## License +This project includes the precompiled expat library, which is distributed under the [MIT License](https://github.com/libexpat/libexpat/blob/master/COPYING). + +Expat Homepage: [https://github.com/libexpat/libexpat](https://github.com/libexpat/libexpat) diff --git a/packages/cppjs-package-expat/cppjs-package-expat.podspec b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs-package-expat.podspec similarity index 100% rename from packages/cppjs-package-expat/cppjs-package-expat.podspec rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs-package-expat.podspec diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..8fe26580 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.build.js @@ -0,0 +1,17 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://github.com/libexpat/libexpat/releases/download/R_${version.replaceAll('.', '_')}/expat-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + '--without-getrandom', '--without-sys-getrandom', + '--without-xmlwf', '--without-examples', '--without-tests', + ], +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..a7fbfaf8 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/cppjs.config.js @@ -0,0 +1,16 @@ +export default { + general: { + name: 'expat' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/package.json new file mode 100644 index 00000000..40ec39be --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-expat-ios-multithread", + "version": "1.1.0", + "nativeVersion": "2.7.1", + "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "expat", + "libexpat", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/packages/cppjs-package-proj/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/.npmignore similarity index 100% rename from packages/cppjs-package-proj/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/.npmignore diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/LICENSE new file mode 100644 index 00000000..ce9e5939 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +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. diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/README.md new file mode 100644 index 00000000..150d59c7 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-expat +**Precompiled expat library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-expat +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import expat from '@cpp.js/package-expat/cppjs.config.js'; + +export default { + dependencies: [ ++ expat + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the expat in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(XML_ExpatVersion()); +} +``` + +## License +This project includes the precompiled expat library, which is distributed under the [MIT License](https://github.com/libexpat/libexpat/blob/master/COPYING). + +Expat Homepage: [https://github.com/libexpat/libexpat](https://github.com/libexpat/libexpat) diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs-package-expat.podspec b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs-package-expat.podspec new file mode 100644 index 00000000..12fa3ec1 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs-package-expat.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "expat" + s.name = "cppjs-package-expat" + s.version = package["nativeVersion"] + s.summary = "Fast streaming XML parser" + s.homepage = "https://github.com/libexpat/libexpat" + s.author = "Thai Open Source Software Center Ltd, Clark Cooper, and Expat maintainers" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'expat.xcframework' +end diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.build.js new file mode 100644 index 00000000..8fe26580 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.build.js @@ -0,0 +1,17 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://github.com/libexpat/libexpat/releases/download/R_${version.replaceAll('.', '_')}/expat-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + '--without-getrandom', '--without-sys-getrandom', + '--without-xmlwf', '--without-examples', '--without-tests', + ], +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.config.js new file mode 100644 index 00000000..01d8f71d --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/cppjs.config.js @@ -0,0 +1,13 @@ +export default { + general: { + name: 'expat' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/packages/cppjs-package-expat/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/package.json similarity index 85% rename from packages/cppjs-package-expat/package.json rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/package.json index 4b7209c7..fc923755 100644 --- a/packages/cppjs-package-expat/package.json +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios/package.json @@ -1,28 +1,28 @@ { - "name": "@cpp.js/package-expat", + "name": "@cpp.js/package-expat-ios", "version": "1.1.0", "nativeVersion": "2.7.1", "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "MIT", "type": "module", - "scripts": { - "build": "cppjs build", - "build:wasm": "cppjs build -p WebAssembly", - "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" - }, - "devDependencies": { - "cpp.js": "workspace:^" - }, + "license": "MIT", "keywords": [ "expat", "libexpat", "cpp.js-package", "webassembly", "react-native" - ] + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } } diff --git a/packages/cppjs-package-sqlite3/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/.npmignore similarity index 100% rename from packages/cppjs-package-sqlite3/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/.npmignore diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/LICENSE new file mode 100644 index 00000000..ce9e5939 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +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. diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/README.md new file mode 100644 index 00000000..150d59c7 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-expat +**Precompiled expat library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-expat +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import expat from '@cpp.js/package-expat/cppjs.config.js'; + +export default { + dependencies: [ ++ expat + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the expat in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(XML_ExpatVersion()); +} +``` + +## License +This project includes the precompiled expat library, which is distributed under the [MIT License](https://github.com/libexpat/libexpat/blob/master/COPYING). + +Expat Homepage: [https://github.com/libexpat/libexpat](https://github.com/libexpat/libexpat) diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.build.js new file mode 100644 index 00000000..8fe26580 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.build.js @@ -0,0 +1,17 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://github.com/libexpat/libexpat/releases/download/R_${version.replaceAll('.', '_')}/expat-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + '--without-getrandom', '--without-sys-getrandom', + '--without-xmlwf', '--without-examples', '--without-tests', + ], +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.config.js new file mode 100644 index 00000000..fdb77c9e --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import expatWasmMultithread from '@cpp.js/package-expat-wasm-multithread/cppjs.config.js'; +import expatAndroidMultithread from '@cpp.js/package-expat-android-multithread/cppjs.config.js'; +import expatIosMultithread from '@cpp.js/package-expat-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + expatWasmMultithread, + expatAndroidMultithread, + expatIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/package.json new file mode 100644 index 00000000..af01ed4e --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-expat-multithread", + "version": "1.1.0", + "nativeVersion": "2.7.1", + "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "expat", + "libexpat", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-expat-wasm-multithread": "workspace:^", + "@cpp.js/package-expat-android-multithread": "workspace:^", + "@cpp.js/package-expat-ios-multithread": "workspace:^" + } +} diff --git a/packages/cppjs-package-tiff/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/.npmignore similarity index 100% rename from packages/cppjs-package-tiff/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/.npmignore diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/LICENSE new file mode 100644 index 00000000..ce9e5939 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +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. diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/README.md new file mode 100644 index 00000000..150d59c7 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-expat +**Precompiled expat library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-expat +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import expat from '@cpp.js/package-expat/cppjs.config.js'; + +export default { + dependencies: [ ++ expat + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the expat in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(XML_ExpatVersion()); +} +``` + +## License +This project includes the precompiled expat library, which is distributed under the [MIT License](https://github.com/libexpat/libexpat/blob/master/COPYING). + +Expat Homepage: [https://github.com/libexpat/libexpat](https://github.com/libexpat/libexpat) diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..8fe26580 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.build.js @@ -0,0 +1,17 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://github.com/libexpat/libexpat/releases/download/R_${version.replaceAll('.', '_')}/expat-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + '--without-getrandom', '--without-sys-getrandom', + '--without-xmlwf', '--without-examples', '--without-tests', + ], +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..a7fbfaf8 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/cppjs.config.js @@ -0,0 +1,16 @@ +export default { + general: { + name: 'expat' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/package.json new file mode 100644 index 00000000..f9df8273 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-expat-wasm-multithread", + "version": "1.1.0", + "nativeVersion": "2.7.1", + "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "expat", + "libexpat", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/packages/cppjs-package-webp/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/.npmignore similarity index 100% rename from packages/cppjs-package-webp/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/.npmignore diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/LICENSE new file mode 100644 index 00000000..ce9e5939 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +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. diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/README.md new file mode 100644 index 00000000..150d59c7 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-expat +**Precompiled expat library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-expat +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import expat from '@cpp.js/package-expat/cppjs.config.js'; + +export default { + dependencies: [ ++ expat + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the expat in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(XML_ExpatVersion()); +} +``` + +## License +This project includes the precompiled expat library, which is distributed under the [MIT License](https://github.com/libexpat/libexpat/blob/master/COPYING). + +Expat Homepage: [https://github.com/libexpat/libexpat](https://github.com/libexpat/libexpat) diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.build.js new file mode 100644 index 00000000..8fe26580 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.build.js @@ -0,0 +1,17 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://github.com/libexpat/libexpat/releases/download/R_${version.replaceAll('.', '_')}/expat-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + '--without-getrandom', '--without-sys-getrandom', + '--without-xmlwf', '--without-examples', '--without-tests', + ], +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.config.js new file mode 100644 index 00000000..01d8f71d --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/cppjs.config.js @@ -0,0 +1,13 @@ +export default { + general: { + name: 'expat' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/package.json new file mode 100644 index 00000000..27ec154f --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-expat-wasm", + "version": "1.1.0", + "nativeVersion": "2.7.1", + "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "expat", + "libexpat", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/packages/cppjs-package-zlib/.npmignore b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/.npmignore similarity index 100% rename from packages/cppjs-package-zlib/.npmignore rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat/.npmignore diff --git a/packages/cppjs-package-expat/CHANGELOG.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-expat/CHANGELOG.md rename to cppjs-packages/cppjs-package-expat/cppjs-package-expat/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat/LICENSE b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/LICENSE new file mode 100644 index 00000000..ce9e5939 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +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. diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat/README.md b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/README.md new file mode 100644 index 00000000..150d59c7 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-expat +**Precompiled expat library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-expat +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import expat from '@cpp.js/package-expat/cppjs.config.js'; + +export default { + dependencies: [ ++ expat + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the expat in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(XML_ExpatVersion()); +} +``` + +## License +This project includes the precompiled expat library, which is distributed under the [MIT License](https://github.com/libexpat/libexpat/blob/master/COPYING). + +Expat Homepage: [https://github.com/libexpat/libexpat](https://github.com/libexpat/libexpat) diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs-package-expat.podspec b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs-package-expat.podspec new file mode 100644 index 00000000..12fa3ec1 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs-package-expat.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "expat" + s.name = "cppjs-package-expat" + s.version = package["nativeVersion"] + s.summary = "Fast streaming XML parser" + s.homepage = "https://github.com/libexpat/libexpat" + s.author = "Thai Open Source Software Center Ltd, Clark Cooper, and Expat maintainers" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'expat.xcframework' +end diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.build.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.build.js new file mode 100644 index 00000000..8fe26580 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.build.js @@ -0,0 +1,17 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://github.com/libexpat/libexpat/releases/download/R_${version.replaceAll('.', '_')}/expat-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + '--without-getrandom', '--without-sys-getrandom', + '--without-xmlwf', '--without-examples', '--without-tests', + ], +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.config.js b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.config.js new file mode 100644 index 00000000..7e84469f --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/cppjs.config.js @@ -0,0 +1,14 @@ +import expatWasm from '@cpp.js/package-expat-wasm/cppjs.config.js'; +import expatAndroid from '@cpp.js/package-expat-android/cppjs.config.js'; +import expatIos from '@cpp.js/package-expat-ios/cppjs.config.js'; + +export default { + dependencies: [ + expatWasm, + expatAndroid, + expatIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-expat/cppjs-package-expat/package.json b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/package.json new file mode 100644 index 00000000..29cc3174 --- /dev/null +++ b/cppjs-packages/cppjs-package-expat/cppjs-package-expat/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-expat", + "version": "1.1.0", + "nativeVersion": "2.7.1", + "description": "This package provides the precompiled Expat XML parser library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables fast and efficient parsing of XML data, making it ideal for applications requiring robust XML handling across platforms. Perfect for web, server-side, and mobile development environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-expat#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "expat", + "libexpat", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-expat-wasm": "workspace:^", + "@cpp.js/package-expat-android": "workspace:^", + "@cpp.js/package-expat-ios": "workspace:^" + } +} diff --git a/packages/cppjs-package-gdal/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/.npmignore similarity index 100% rename from packages/cppjs-package-gdal/.npmignore rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/.npmignore diff --git a/packages/cppjs-package-gdal/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-gdal/LICENSE rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/LICENSE diff --git a/packages/cppjs-package-gdal/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-gdal/README.md rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/README.md diff --git a/packages/cppjs-package-gdal/assets/gdal_empty_file.cpp b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/assets/gdal_empty_file.cpp similarity index 100% rename from packages/cppjs-package-gdal/assets/gdal_empty_file.cpp rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/assets/gdal_empty_file.cpp diff --git a/packages/cppjs-package-gdal/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/cppjs.build.js similarity index 98% rename from packages/cppjs-package-gdal/cppjs.build.js rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/cppjs.build.js index 9300695a..86074327 100644 --- a/packages/cppjs-package-gdal/cppjs.build.js +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/cppjs.build.js @@ -35,7 +35,7 @@ export default { }, ], buildType: 'cmake', - getBuildParams: (platform, depPaths, ext) => [ + getBuildParams: (platform, depPaths) => [ ...(platformCmake[platform] || []), '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/cppjs.config.js new file mode 100644 index 00000000..eec41013 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/cppjs.config.js @@ -0,0 +1,52 @@ +import expatAndroidMultithread from '@cpp.js/package-expat-android-multithread/cppjs.config.js'; +import geosAndroidMultithread from '@cpp.js/package-geos-android-multithread/cppjs.config.js'; +import geotiffAndroidMultithread from '@cpp.js/package-geotiff-android-multithread/cppjs.config.js'; +import iconvAndroidMultithread from '@cpp.js/package-iconv-android-multithread/cppjs.config.js'; +import projAndroidMultithread from '@cpp.js/package-proj-android-multithread/cppjs.config.js'; +import spatialiteAndroidMultithread from '@cpp.js/package-spatialite-android-multithread/cppjs.config.js'; +import sqlite3AndroidMultithread from '@cpp.js/package-sqlite3-android-multithread/cppjs.config.js'; +import tiffAndroidMultithread from '@cpp.js/package-tiff-android-multithread/cppjs.config.js'; +import webpAndroidMultithread from '@cpp.js/package-webp-android-multithread/cppjs.config.js'; +import zlibAndroidMultithread from '@cpp.js/package-zlib-android-multithread/cppjs.config.js'; + +export default { + dependencies: [ + expatAndroidMultithread, + geosAndroidMultithread, + geotiffAndroidMultithread, + iconvAndroidMultithread, + projAndroidMultithread, + spatialiteAndroidMultithread, + sqlite3AndroidMultithread, + tiffAndroidMultithread, + webpAndroidMultithread, + zlibAndroidMultithread, + ], + general: { + name: 'gdal' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Android-arm64-v8a': { + data: { + 'share/gdal': 'gdal' + }, + env: { + GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/package.json new file mode 100644 index 00000000..b8b6651c --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread/package.json @@ -0,0 +1,40 @@ +{ + "name": "@cpp.js/package-gdal-android-multithread", + "version": "1.0.0", + "nativeVersion": "3.10.3", + "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-expat-android-multithread": "workspace:^", + "@cpp.js/package-geos-android-multithread": "workspace:^", + "@cpp.js/package-geotiff-android-multithread": "workspace:^", + "@cpp.js/package-iconv-android-multithread": "workspace:^", + "@cpp.js/package-proj-android-multithread": "workspace:^", + "@cpp.js/package-spatialite-android-multithread": "workspace:^", + "@cpp.js/package-sqlite3-android-multithread": "workspace:^", + "@cpp.js/package-tiff-android-multithread": "workspace:^", + "@cpp.js/package-webp-android-multithread": "workspace:^", + "@cpp.js/package-zlib-android-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/.npmignore new file mode 100644 index 00000000..ca435ded --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/.npmignore @@ -0,0 +1,11 @@ +dist/prebuilt/iOS-iphoneos/lib +dist/prebuilt/iOS-iphonesimulator/lib +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin +dist/prebuilt/**/share/bash-completion +dist/prebuilt/**/share/man diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/LICENSE new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/LICENSE @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/README.md new file mode 100644 index 00000000..0a243d4a --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-gdal +**Precompiled gdal library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-gdal +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import gdal from '@cpp.js/package-gdal/cppjs.config.js'; + +export default { + dependencies: [ ++ gdal + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the gdal in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GDAL_RELEASE_NAME); +} +``` + +## License +This project includes the precompiled GDAL library, which is distributed under the [MIT License](https://github.com/OSGeo/gdal/blob/master/LICENSE.TXT). + +GDAL Homepage: [https://gdal.org/](https://gdal.org/) diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/assets/gdal_empty_file.cpp b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/assets/gdal_empty_file.cpp new file mode 100644 index 00000000..e69de29b diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.build.js new file mode 100644 index 00000000..86074327 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.build.js @@ -0,0 +1,59 @@ +const platformCmake = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF'], + 'Android-arm64-v8a': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], + 'Android-x86_64': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], +}; + +export default { + getURL: (version) => `https://github.com/OSGeo/gdal/releases/download/v${version}/gdal-${version}.tar.gz`, + copyToSource: { 'assets/gdal_empty_file.cpp': 'gcore/gdal_empty_file.cpp' }, + replaceList: [ + { + regex: ' iconv_open', + replacement: ' libiconv_open', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' iconv', + replacement: ' libiconv', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: '#include ', + replacement: '# include \nextern "C" {\n extern __attribute__((__visibility__("default"))) iconv_t libiconv_open (const char* tocode, const char* fromcode);\n extern __attribute__((__visibility__("default"))) size_t libiconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);\n}', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' add_subdirectory\\(swig\\)', + replacement: '', + paths: ['gdal.cmake'], + }, + { + regex: 'add_library\\(\\$\\{GDAL_LIB_TARGET_NAME\\} gcore/gdal.h\\)', + replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)', + paths: ['gdal.cmake'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformCmake[platform] || []), + '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', + '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', + '-DGDAL_USE_ZSTD=OFF', '-DGDAL_ENABLE_DRIVER_PDS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DPROJ_INCLUDE_DIR=${depPaths.proj.header}`, `-DPROJ_LIBRARY_RELEASE=${depPaths.proj.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + `-DGEOTIFF_INCLUDE_DIR=${depPaths.geotiff.header}`, `-DGEOTIFF_LIBRARY_RELEASE=${depPaths.geotiff.lib}`, + `-DZLIB_INCLUDE_DIR=${depPaths.z.header}`, `-DZLIB_LIBRARY_RELEASE=${depPaths.z.lib}`, + `-DSPATIALITE_INCLUDE_DIR=${depPaths.spatialite.header}`, `-DSPATIALITE_LIBRARY=${depPaths.spatialite.lib}`, + `-DGEOS_INCLUDE_DIR=${depPaths.geos.header}`, `-DGEOS_LIBRARY=${depPaths.geos_c.lib}`, + `-DWEBP_INCLUDE_DIR=${depPaths.webp.header}`, `-DWEBP_LIBRARY=${depPaths.webp.lib}`, + `-DEXPAT_INCLUDE_DIR=${depPaths.expat.header}`, `-DEXPAT_LIBRARY=${depPaths.expat.lib}`, + `-DIconv_INCLUDE_DIR=${depPaths.iconv.header}`, `-DIconv_LIBRARY=${depPaths.iconv.lib}`, + ], + env: [ + 'CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'CPPFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'EMCC_CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + ], +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.config.js new file mode 100644 index 00000000..d42d1763 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/cppjs.config.js @@ -0,0 +1,49 @@ +import expatAndroid from '@cpp.js/package-expat-android/cppjs.config.js'; +import geosAndroid from '@cpp.js/package-geos-android/cppjs.config.js'; +import geotiffAndroid from '@cpp.js/package-geotiff-android/cppjs.config.js'; +import iconvAndroid from '@cpp.js/package-iconv-android/cppjs.config.js'; +import projAndroid from '@cpp.js/package-proj-android/cppjs.config.js'; +import spatialiteAndroid from '@cpp.js/package-spatialite-android/cppjs.config.js'; +import sqlite3Android from '@cpp.js/package-sqlite3-android/cppjs.config.js'; +import tiffAndroid from '@cpp.js/package-tiff-android/cppjs.config.js'; +import webpAndroid from '@cpp.js/package-webp-android/cppjs.config.js'; +import zlibAndroid from '@cpp.js/package-zlib-android/cppjs.config.js'; + +export default { + dependencies: [ + expatAndroid, + geosAndroid, + geotiffAndroid, + iconvAndroid, + projAndroid, + spatialiteAndroid, + sqlite3Android, + tiffAndroid, + webpAndroid, + zlibAndroid, + ], + general: { + name: 'gdal' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Android-arm64-v8a': { + 'data': { + 'share/gdal': 'gdal' + }, + env: { + GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/package.json new file mode 100644 index 00000000..0b185329 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android/package.json @@ -0,0 +1,40 @@ +{ + "name": "@cpp.js/package-gdal-android", + "version": "1.0.0", + "nativeVersion": "3.10.3", + "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-expat-android": "workspace:^", + "@cpp.js/package-geos-android": "workspace:^", + "@cpp.js/package-geotiff-android": "workspace:^", + "@cpp.js/package-iconv-android": "workspace:^", + "@cpp.js/package-proj-android": "workspace:^", + "@cpp.js/package-spatialite-android": "workspace:^", + "@cpp.js/package-sqlite3-android": "workspace:^", + "@cpp.js/package-tiff-android": "workspace:^", + "@cpp.js/package-webp-android": "workspace:^", + "@cpp.js/package-zlib-android": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/.npmignore new file mode 100644 index 00000000..ca435ded --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/.npmignore @@ -0,0 +1,11 @@ +dist/prebuilt/iOS-iphoneos/lib +dist/prebuilt/iOS-iphonesimulator/lib +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin +dist/prebuilt/**/share/bash-completion +dist/prebuilt/**/share/man diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/LICENSE new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/LICENSE @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/README.md new file mode 100644 index 00000000..0a243d4a --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-gdal +**Precompiled gdal library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-gdal +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import gdal from '@cpp.js/package-gdal/cppjs.config.js'; + +export default { + dependencies: [ ++ gdal + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the gdal in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GDAL_RELEASE_NAME); +} +``` + +## License +This project includes the precompiled GDAL library, which is distributed under the [MIT License](https://github.com/OSGeo/gdal/blob/master/LICENSE.TXT). + +GDAL Homepage: [https://gdal.org/](https://gdal.org/) diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/assets/gdal_empty_file.cpp b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/assets/gdal_empty_file.cpp new file mode 100644 index 00000000..e69de29b diff --git a/packages/cppjs-package-gdal/cppjs-package-gdal.podspec b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs-package-gdal.podspec similarity index 100% rename from packages/cppjs-package-gdal/cppjs-package-gdal.podspec rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs-package-gdal.podspec diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..86074327 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.build.js @@ -0,0 +1,59 @@ +const platformCmake = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF'], + 'Android-arm64-v8a': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], + 'Android-x86_64': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], +}; + +export default { + getURL: (version) => `https://github.com/OSGeo/gdal/releases/download/v${version}/gdal-${version}.tar.gz`, + copyToSource: { 'assets/gdal_empty_file.cpp': 'gcore/gdal_empty_file.cpp' }, + replaceList: [ + { + regex: ' iconv_open', + replacement: ' libiconv_open', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' iconv', + replacement: ' libiconv', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: '#include ', + replacement: '# include \nextern "C" {\n extern __attribute__((__visibility__("default"))) iconv_t libiconv_open (const char* tocode, const char* fromcode);\n extern __attribute__((__visibility__("default"))) size_t libiconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);\n}', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' add_subdirectory\\(swig\\)', + replacement: '', + paths: ['gdal.cmake'], + }, + { + regex: 'add_library\\(\\$\\{GDAL_LIB_TARGET_NAME\\} gcore/gdal.h\\)', + replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)', + paths: ['gdal.cmake'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformCmake[platform] || []), + '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', + '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', + '-DGDAL_USE_ZSTD=OFF', '-DGDAL_ENABLE_DRIVER_PDS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DPROJ_INCLUDE_DIR=${depPaths.proj.header}`, `-DPROJ_LIBRARY_RELEASE=${depPaths.proj.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + `-DGEOTIFF_INCLUDE_DIR=${depPaths.geotiff.header}`, `-DGEOTIFF_LIBRARY_RELEASE=${depPaths.geotiff.lib}`, + `-DZLIB_INCLUDE_DIR=${depPaths.z.header}`, `-DZLIB_LIBRARY_RELEASE=${depPaths.z.lib}`, + `-DSPATIALITE_INCLUDE_DIR=${depPaths.spatialite.header}`, `-DSPATIALITE_LIBRARY=${depPaths.spatialite.lib}`, + `-DGEOS_INCLUDE_DIR=${depPaths.geos.header}`, `-DGEOS_LIBRARY=${depPaths.geos_c.lib}`, + `-DWEBP_INCLUDE_DIR=${depPaths.webp.header}`, `-DWEBP_LIBRARY=${depPaths.webp.lib}`, + `-DEXPAT_INCLUDE_DIR=${depPaths.expat.header}`, `-DEXPAT_LIBRARY=${depPaths.expat.lib}`, + `-DIconv_INCLUDE_DIR=${depPaths.iconv.header}`, `-DIconv_LIBRARY=${depPaths.iconv.lib}`, + ], + env: [ + 'CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'CPPFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'EMCC_CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + ], +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..8ec32082 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/cppjs.config.js @@ -0,0 +1,52 @@ +import expatIosMultithread from '@cpp.js/package-expat-ios-multithread/cppjs.config.js'; +import geosIosMultithread from '@cpp.js/package-geos-ios-multithread/cppjs.config.js'; +import geotiffIosMultithread from '@cpp.js/package-geotiff-ios-multithread/cppjs.config.js'; +import iconvIosMultithread from '@cpp.js/package-iconv-ios-multithread/cppjs.config.js'; +import projIosMultithread from '@cpp.js/package-proj-ios-multithread/cppjs.config.js'; +import spatialiteIosMultithread from '@cpp.js/package-spatialite-ios-multithread/cppjs.config.js'; +import sqlite3IosMultithread from '@cpp.js/package-sqlite3-ios-multithread/cppjs.config.js'; +import tiffIosMultithread from '@cpp.js/package-tiff-ios-multithread/cppjs.config.js'; +import webpIosMultithread from '@cpp.js/package-webp-ios-multithread/cppjs.config.js'; +import zlibIosMultithread from '@cpp.js/package-zlib-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + expatIosMultithread, + geosIosMultithread, + geotiffIosMultithread, + iconvIosMultithread, + projIosMultithread, + spatialiteIosMultithread, + sqlite3IosMultithread, + tiffIosMultithread, + webpIosMultithread, + zlibIosMultithread, + ], + general: { + name: 'gdal' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'iOS-iphoneos': { + data: { + 'share/gdal': 'gdal' + }, + env: { + GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/package.json new file mode 100644 index 00000000..22d6f6cb --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread/package.json @@ -0,0 +1,40 @@ +{ + "name": "@cpp.js/package-gdal-ios-multithread", + "version": "1.0.0", + "nativeVersion": "3.10.3", + "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-expat-ios-multithread": "workspace:^", + "@cpp.js/package-geos-ios-multithread": "workspace:^", + "@cpp.js/package-geotiff-ios-multithread": "workspace:^", + "@cpp.js/package-iconv-ios-multithread": "workspace:^", + "@cpp.js/package-proj-ios-multithread": "workspace:^", + "@cpp.js/package-spatialite-ios-multithread": "workspace:^", + "@cpp.js/package-sqlite3-ios-multithread": "workspace:^", + "@cpp.js/package-tiff-ios-multithread": "workspace:^", + "@cpp.js/package-webp-ios-multithread": "workspace:^", + "@cpp.js/package-zlib-ios-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/.npmignore new file mode 100644 index 00000000..ca435ded --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/.npmignore @@ -0,0 +1,11 @@ +dist/prebuilt/iOS-iphoneos/lib +dist/prebuilt/iOS-iphonesimulator/lib +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin +dist/prebuilt/**/share/bash-completion +dist/prebuilt/**/share/man diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/LICENSE new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/LICENSE @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/README.md new file mode 100644 index 00000000..0a243d4a --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-gdal +**Precompiled gdal library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-gdal +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import gdal from '@cpp.js/package-gdal/cppjs.config.js'; + +export default { + dependencies: [ ++ gdal + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the gdal in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GDAL_RELEASE_NAME); +} +``` + +## License +This project includes the precompiled GDAL library, which is distributed under the [MIT License](https://github.com/OSGeo/gdal/blob/master/LICENSE.TXT). + +GDAL Homepage: [https://gdal.org/](https://gdal.org/) diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/assets/gdal_empty_file.cpp b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/assets/gdal_empty_file.cpp new file mode 100644 index 00000000..e69de29b diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs-package-gdal.podspec b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs-package-gdal.podspec new file mode 100644 index 00000000..ca40085c --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs-package-gdal.podspec @@ -0,0 +1,15 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "gdal" + s.name = "cppjs-package-gdal" + s.version = package["nativeVersion"] + s.summary = "GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats." + s.homepage = "https://github.com/OSGeo/gdal" + s.author = "GDAL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'gdal.xcframework', 'expat.xcframework', 'geos.xcframework', 'geotiff.xcframework', 'iconv.xcframework', 'proj.xcframework', 'spatialite.xcframework', 'sqlite3.xcframework', 'tiff.xcframework', 'webp.xcframework', 'z.xcframework' + s.library = 'xml2' + s.resources = ['dist/prebuilt/iOS-iphoneos/share/gdal'] +end diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.build.js new file mode 100644 index 00000000..86074327 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.build.js @@ -0,0 +1,59 @@ +const platformCmake = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF'], + 'Android-arm64-v8a': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], + 'Android-x86_64': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], +}; + +export default { + getURL: (version) => `https://github.com/OSGeo/gdal/releases/download/v${version}/gdal-${version}.tar.gz`, + copyToSource: { 'assets/gdal_empty_file.cpp': 'gcore/gdal_empty_file.cpp' }, + replaceList: [ + { + regex: ' iconv_open', + replacement: ' libiconv_open', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' iconv', + replacement: ' libiconv', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: '#include ', + replacement: '# include \nextern "C" {\n extern __attribute__((__visibility__("default"))) iconv_t libiconv_open (const char* tocode, const char* fromcode);\n extern __attribute__((__visibility__("default"))) size_t libiconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);\n}', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' add_subdirectory\\(swig\\)', + replacement: '', + paths: ['gdal.cmake'], + }, + { + regex: 'add_library\\(\\$\\{GDAL_LIB_TARGET_NAME\\} gcore/gdal.h\\)', + replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)', + paths: ['gdal.cmake'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformCmake[platform] || []), + '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', + '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', + '-DGDAL_USE_ZSTD=OFF', '-DGDAL_ENABLE_DRIVER_PDS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DPROJ_INCLUDE_DIR=${depPaths.proj.header}`, `-DPROJ_LIBRARY_RELEASE=${depPaths.proj.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + `-DGEOTIFF_INCLUDE_DIR=${depPaths.geotiff.header}`, `-DGEOTIFF_LIBRARY_RELEASE=${depPaths.geotiff.lib}`, + `-DZLIB_INCLUDE_DIR=${depPaths.z.header}`, `-DZLIB_LIBRARY_RELEASE=${depPaths.z.lib}`, + `-DSPATIALITE_INCLUDE_DIR=${depPaths.spatialite.header}`, `-DSPATIALITE_LIBRARY=${depPaths.spatialite.lib}`, + `-DGEOS_INCLUDE_DIR=${depPaths.geos.header}`, `-DGEOS_LIBRARY=${depPaths.geos_c.lib}`, + `-DWEBP_INCLUDE_DIR=${depPaths.webp.header}`, `-DWEBP_LIBRARY=${depPaths.webp.lib}`, + `-DEXPAT_INCLUDE_DIR=${depPaths.expat.header}`, `-DEXPAT_LIBRARY=${depPaths.expat.lib}`, + `-DIconv_INCLUDE_DIR=${depPaths.iconv.header}`, `-DIconv_LIBRARY=${depPaths.iconv.lib}`, + ], + env: [ + 'CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'CPPFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'EMCC_CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + ], +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.config.js new file mode 100644 index 00000000..97dcf49b --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/cppjs.config.js @@ -0,0 +1,49 @@ +import expatIos from '@cpp.js/package-expat-ios/cppjs.config.js'; +import geosIos from '@cpp.js/package-geos-ios/cppjs.config.js'; +import geotiffIos from '@cpp.js/package-geotiff-ios/cppjs.config.js'; +import iconvIos from '@cpp.js/package-iconv-ios/cppjs.config.js'; +import projIos from '@cpp.js/package-proj-ios/cppjs.config.js'; +import spatialiteIos from '@cpp.js/package-spatialite-ios/cppjs.config.js'; +import sqlite3Ios from '@cpp.js/package-sqlite3-ios/cppjs.config.js'; +import tiffIos from '@cpp.js/package-tiff-ios/cppjs.config.js'; +import webpIos from '@cpp.js/package-webp-ios/cppjs.config.js'; +import zlibIos from '@cpp.js/package-zlib-ios/cppjs.config.js'; + +export default { + dependencies: [ + expatIos, + geosIos, + geotiffIos, + iconvIos, + projIos, + spatialiteIos, + sqlite3Ios, + tiffIos, + webpIos, + zlibIos, + ], + general: { + name: 'gdal' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'iOS-iphoneos': { + 'data': { + 'share/gdal': 'gdal' + }, + env: { + GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + } + } +}; diff --git a/packages/cppjs-package-gdal/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/package.json similarity index 60% rename from packages/cppjs-package-gdal/package.json rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/package.json index 887551b2..2cef3121 100644 --- a/packages/cppjs-package-gdal/package.json +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios/package.json @@ -1,40 +1,40 @@ { - "name": "@cpp.js/package-gdal", + "name": "@cpp.js/package-gdal-ios", "version": "1.0.0", "nativeVersion": "3.10.3", "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "MIT", "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], "scripts": { - "build": "cppjs build", + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", "build:wasm": "cppjs build -p WebAssembly", "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" + "build:ios": "cppjs build -p iOS" }, "dependencies": { - "@cpp.js/package-expat": "workspace:^", - "@cpp.js/package-geos": "workspace:^", - "@cpp.js/package-geotiff": "workspace:^", - "@cpp.js/package-iconv": "workspace:^", - "@cpp.js/package-proj": "workspace:^", - "@cpp.js/package-spatialite": "workspace:^", - "@cpp.js/package-sqlite3": "workspace:^", - "@cpp.js/package-tiff": "workspace:^", - "@cpp.js/package-webp": "workspace:^", - "@cpp.js/package-zlib": "workspace:^" + "@cpp.js/package-expat-ios": "workspace:^", + "@cpp.js/package-geos-ios": "workspace:^", + "@cpp.js/package-geotiff-ios": "workspace:^", + "@cpp.js/package-iconv-ios": "workspace:^", + "@cpp.js/package-proj-ios": "workspace:^", + "@cpp.js/package-spatialite-ios": "workspace:^", + "@cpp.js/package-sqlite3-ios": "workspace:^", + "@cpp.js/package-tiff-ios": "workspace:^", + "@cpp.js/package-webp-ios": "workspace:^", + "@cpp.js/package-zlib-ios": "workspace:^" }, "devDependencies": { "cpp.js": "workspace:^" - }, - "keywords": [ - "gdal", - "libgdal", - "cpp.js-package", - "webassembly", - "react-native" - ] + } } diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/.npmignore new file mode 100644 index 00000000..ca435ded --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/.npmignore @@ -0,0 +1,11 @@ +dist/prebuilt/iOS-iphoneos/lib +dist/prebuilt/iOS-iphonesimulator/lib +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin +dist/prebuilt/**/share/bash-completion +dist/prebuilt/**/share/man diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/LICENSE new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/LICENSE @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/README.md new file mode 100644 index 00000000..0a243d4a --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-gdal +**Precompiled gdal library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-gdal +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import gdal from '@cpp.js/package-gdal/cppjs.config.js'; + +export default { + dependencies: [ ++ gdal + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the gdal in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GDAL_RELEASE_NAME); +} +``` + +## License +This project includes the precompiled GDAL library, which is distributed under the [MIT License](https://github.com/OSGeo/gdal/blob/master/LICENSE.TXT). + +GDAL Homepage: [https://gdal.org/](https://gdal.org/) diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.build.js new file mode 100644 index 00000000..86074327 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.build.js @@ -0,0 +1,59 @@ +const platformCmake = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF'], + 'Android-arm64-v8a': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], + 'Android-x86_64': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], +}; + +export default { + getURL: (version) => `https://github.com/OSGeo/gdal/releases/download/v${version}/gdal-${version}.tar.gz`, + copyToSource: { 'assets/gdal_empty_file.cpp': 'gcore/gdal_empty_file.cpp' }, + replaceList: [ + { + regex: ' iconv_open', + replacement: ' libiconv_open', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' iconv', + replacement: ' libiconv', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: '#include ', + replacement: '# include \nextern "C" {\n extern __attribute__((__visibility__("default"))) iconv_t libiconv_open (const char* tocode, const char* fromcode);\n extern __attribute__((__visibility__("default"))) size_t libiconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);\n}', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' add_subdirectory\\(swig\\)', + replacement: '', + paths: ['gdal.cmake'], + }, + { + regex: 'add_library\\(\\$\\{GDAL_LIB_TARGET_NAME\\} gcore/gdal.h\\)', + replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)', + paths: ['gdal.cmake'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformCmake[platform] || []), + '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', + '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', + '-DGDAL_USE_ZSTD=OFF', '-DGDAL_ENABLE_DRIVER_PDS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DPROJ_INCLUDE_DIR=${depPaths.proj.header}`, `-DPROJ_LIBRARY_RELEASE=${depPaths.proj.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + `-DGEOTIFF_INCLUDE_DIR=${depPaths.geotiff.header}`, `-DGEOTIFF_LIBRARY_RELEASE=${depPaths.geotiff.lib}`, + `-DZLIB_INCLUDE_DIR=${depPaths.z.header}`, `-DZLIB_LIBRARY_RELEASE=${depPaths.z.lib}`, + `-DSPATIALITE_INCLUDE_DIR=${depPaths.spatialite.header}`, `-DSPATIALITE_LIBRARY=${depPaths.spatialite.lib}`, + `-DGEOS_INCLUDE_DIR=${depPaths.geos.header}`, `-DGEOS_LIBRARY=${depPaths.geos_c.lib}`, + `-DWEBP_INCLUDE_DIR=${depPaths.webp.header}`, `-DWEBP_LIBRARY=${depPaths.webp.lib}`, + `-DEXPAT_INCLUDE_DIR=${depPaths.expat.header}`, `-DEXPAT_LIBRARY=${depPaths.expat.lib}`, + `-DIconv_INCLUDE_DIR=${depPaths.iconv.header}`, `-DIconv_LIBRARY=${depPaths.iconv.lib}`, + ], + env: [ + 'CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'CPPFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'EMCC_CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + ], +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.config.js new file mode 100644 index 00000000..e2895753 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import gdalWasmMultithread from '@cpp.js/package-gdal-wasm-multithread/cppjs.config.js'; +import gdalAndroidMultithread from '@cpp.js/package-gdal-android-multithread/cppjs.config.js'; +import gdalIosMultithread from '@cpp.js/package-gdal-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + gdalWasmMultithread, + gdalAndroidMultithread, + gdalIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/package.json new file mode 100644 index 00000000..ed52d7bf --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-gdal-multithread", + "version": "1.0.0", + "nativeVersion": "3.10.3", + "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-gdal-wasm-multithread": "workspace:^", + "@cpp.js/package-gdal-android-multithread": "workspace:^", + "@cpp.js/package-gdal-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/.npmignore new file mode 100644 index 00000000..ca435ded --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/.npmignore @@ -0,0 +1,11 @@ +dist/prebuilt/iOS-iphoneos/lib +dist/prebuilt/iOS-iphonesimulator/lib +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin +dist/prebuilt/**/share/bash-completion +dist/prebuilt/**/share/man diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/LICENSE new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/LICENSE @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/README.md new file mode 100644 index 00000000..0a243d4a --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-gdal +**Precompiled gdal library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-gdal +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import gdal from '@cpp.js/package-gdal/cppjs.config.js'; + +export default { + dependencies: [ ++ gdal + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the gdal in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GDAL_RELEASE_NAME); +} +``` + +## License +This project includes the precompiled GDAL library, which is distributed under the [MIT License](https://github.com/OSGeo/gdal/blob/master/LICENSE.TXT). + +GDAL Homepage: [https://gdal.org/](https://gdal.org/) diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/assets/gdal_empty_file.cpp b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/assets/gdal_empty_file.cpp new file mode 100644 index 00000000..e69de29b diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..86074327 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.build.js @@ -0,0 +1,59 @@ +const platformCmake = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF'], + 'Android-arm64-v8a': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], + 'Android-x86_64': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], +}; + +export default { + getURL: (version) => `https://github.com/OSGeo/gdal/releases/download/v${version}/gdal-${version}.tar.gz`, + copyToSource: { 'assets/gdal_empty_file.cpp': 'gcore/gdal_empty_file.cpp' }, + replaceList: [ + { + regex: ' iconv_open', + replacement: ' libiconv_open', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' iconv', + replacement: ' libiconv', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: '#include ', + replacement: '# include \nextern "C" {\n extern __attribute__((__visibility__("default"))) iconv_t libiconv_open (const char* tocode, const char* fromcode);\n extern __attribute__((__visibility__("default"))) size_t libiconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);\n}', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' add_subdirectory\\(swig\\)', + replacement: '', + paths: ['gdal.cmake'], + }, + { + regex: 'add_library\\(\\$\\{GDAL_LIB_TARGET_NAME\\} gcore/gdal.h\\)', + replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)', + paths: ['gdal.cmake'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformCmake[platform] || []), + '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', + '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', + '-DGDAL_USE_ZSTD=OFF', '-DGDAL_ENABLE_DRIVER_PDS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DPROJ_INCLUDE_DIR=${depPaths.proj.header}`, `-DPROJ_LIBRARY_RELEASE=${depPaths.proj.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + `-DGEOTIFF_INCLUDE_DIR=${depPaths.geotiff.header}`, `-DGEOTIFF_LIBRARY_RELEASE=${depPaths.geotiff.lib}`, + `-DZLIB_INCLUDE_DIR=${depPaths.z.header}`, `-DZLIB_LIBRARY_RELEASE=${depPaths.z.lib}`, + `-DSPATIALITE_INCLUDE_DIR=${depPaths.spatialite.header}`, `-DSPATIALITE_LIBRARY=${depPaths.spatialite.lib}`, + `-DGEOS_INCLUDE_DIR=${depPaths.geos.header}`, `-DGEOS_LIBRARY=${depPaths.geos_c.lib}`, + `-DWEBP_INCLUDE_DIR=${depPaths.webp.header}`, `-DWEBP_LIBRARY=${depPaths.webp.lib}`, + `-DEXPAT_INCLUDE_DIR=${depPaths.expat.header}`, `-DEXPAT_LIBRARY=${depPaths.expat.lib}`, + `-DIconv_INCLUDE_DIR=${depPaths.iconv.header}`, `-DIconv_LIBRARY=${depPaths.iconv.lib}`, + ], + env: [ + 'CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'CPPFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'EMCC_CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + ], +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..f01a9649 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/cppjs.config.js @@ -0,0 +1,65 @@ +import expatWasmMultithread from '@cpp.js/package-expat-wasm-multithread/cppjs.config.js'; +import geosWasmMultithread from '@cpp.js/package-geos-wasm-multithread/cppjs.config.js'; +import geotiffWasmMultithread from '@cpp.js/package-geotiff-wasm-multithread/cppjs.config.js'; +import iconvWasmMultithread from '@cpp.js/package-iconv-wasm-multithread/cppjs.config.js'; +import projWasmMultithread from '@cpp.js/package-proj-wasm-multithread/cppjs.config.js'; +import spatialiteWasmMultithread from '@cpp.js/package-spatialite-wasm-multithread/cppjs.config.js'; +import sqlite3WasmMultithread from '@cpp.js/package-sqlite3-wasm-multithread/cppjs.config.js'; +import tiffWasmMultithread from '@cpp.js/package-tiff-wasm-multithread/cppjs.config.js'; +import webpWasmMultithread from '@cpp.js/package-webp-wasm-multithread/cppjs.config.js'; +import zlibWasmMultithread from '@cpp.js/package-zlib-wasm-multithread/cppjs.config.js'; + +export default { + dependencies: [ + expatWasmMultithread, + geosWasmMultithread, + geotiffWasmMultithread, + iconvWasmMultithread, + projWasmMultithread, + spatialiteWasmMultithread, + sqlite3WasmMultithread, + tiffWasmMultithread, + webpWasmMultithread, + zlibWasmMultithread, + ], + general: { + name: 'gdal' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Emscripten-x86_64-browser': { + data: { + 'share/gdal': '/usr/share/gdal' + }, + env: { + GDAL_DATA: '/usr/share/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_NUM_THREADS: '0', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + }, + 'Emscripten-x86_64-node': { + data: { + 'share/gdal': 'gdal' + }, + env: { + GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_NUM_THREADS: '0', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/package.json new file mode 100644 index 00000000..e235a7ba --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread/package.json @@ -0,0 +1,40 @@ +{ + "name": "@cpp.js/package-gdal-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "3.10.3", + "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-expat-wasm-multithread": "workspace:^", + "@cpp.js/package-geos-wasm-multithread": "workspace:^", + "@cpp.js/package-geotiff-wasm-multithread": "workspace:^", + "@cpp.js/package-iconv-wasm-multithread": "workspace:^", + "@cpp.js/package-proj-wasm-multithread": "workspace:^", + "@cpp.js/package-spatialite-wasm-multithread": "workspace:^", + "@cpp.js/package-sqlite3-wasm-multithread": "workspace:^", + "@cpp.js/package-tiff-wasm-multithread": "workspace:^", + "@cpp.js/package-webp-wasm-multithread": "workspace:^", + "@cpp.js/package-zlib-wasm-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/.npmignore new file mode 100644 index 00000000..ca435ded --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/.npmignore @@ -0,0 +1,11 @@ +dist/prebuilt/iOS-iphoneos/lib +dist/prebuilt/iOS-iphonesimulator/lib +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin +dist/prebuilt/**/share/bash-completion +dist/prebuilt/**/share/man diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/LICENSE new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/LICENSE @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/README.md new file mode 100644 index 00000000..0a243d4a --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-gdal +**Precompiled gdal library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-gdal +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import gdal from '@cpp.js/package-gdal/cppjs.config.js'; + +export default { + dependencies: [ ++ gdal + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the gdal in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GDAL_RELEASE_NAME); +} +``` + +## License +This project includes the precompiled GDAL library, which is distributed under the [MIT License](https://github.com/OSGeo/gdal/blob/master/LICENSE.TXT). + +GDAL Homepage: [https://gdal.org/](https://gdal.org/) diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/assets/gdal_empty_file.cpp b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/assets/gdal_empty_file.cpp new file mode 100644 index 00000000..e69de29b diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.build.js new file mode 100644 index 00000000..86074327 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.build.js @@ -0,0 +1,59 @@ +const platformCmake = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF'], + 'Android-arm64-v8a': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], + 'Android-x86_64': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], +}; + +export default { + getURL: (version) => `https://github.com/OSGeo/gdal/releases/download/v${version}/gdal-${version}.tar.gz`, + copyToSource: { 'assets/gdal_empty_file.cpp': 'gcore/gdal_empty_file.cpp' }, + replaceList: [ + { + regex: ' iconv_open', + replacement: ' libiconv_open', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' iconv', + replacement: ' libiconv', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: '#include ', + replacement: '# include \nextern "C" {\n extern __attribute__((__visibility__("default"))) iconv_t libiconv_open (const char* tocode, const char* fromcode);\n extern __attribute__((__visibility__("default"))) size_t libiconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);\n}', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' add_subdirectory\\(swig\\)', + replacement: '', + paths: ['gdal.cmake'], + }, + { + regex: 'add_library\\(\\$\\{GDAL_LIB_TARGET_NAME\\} gcore/gdal.h\\)', + replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)', + paths: ['gdal.cmake'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformCmake[platform] || []), + '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', + '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', + '-DGDAL_USE_ZSTD=OFF', '-DGDAL_ENABLE_DRIVER_PDS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DPROJ_INCLUDE_DIR=${depPaths.proj.header}`, `-DPROJ_LIBRARY_RELEASE=${depPaths.proj.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + `-DGEOTIFF_INCLUDE_DIR=${depPaths.geotiff.header}`, `-DGEOTIFF_LIBRARY_RELEASE=${depPaths.geotiff.lib}`, + `-DZLIB_INCLUDE_DIR=${depPaths.z.header}`, `-DZLIB_LIBRARY_RELEASE=${depPaths.z.lib}`, + `-DSPATIALITE_INCLUDE_DIR=${depPaths.spatialite.header}`, `-DSPATIALITE_LIBRARY=${depPaths.spatialite.lib}`, + `-DGEOS_INCLUDE_DIR=${depPaths.geos.header}`, `-DGEOS_LIBRARY=${depPaths.geos_c.lib}`, + `-DWEBP_INCLUDE_DIR=${depPaths.webp.header}`, `-DWEBP_LIBRARY=${depPaths.webp.lib}`, + `-DEXPAT_INCLUDE_DIR=${depPaths.expat.header}`, `-DEXPAT_LIBRARY=${depPaths.expat.lib}`, + `-DIconv_INCLUDE_DIR=${depPaths.iconv.header}`, `-DIconv_LIBRARY=${depPaths.iconv.lib}`, + ], + env: [ + 'CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'CPPFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'EMCC_CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + ], +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.config.js new file mode 100644 index 00000000..73e2b72f --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.config.js @@ -0,0 +1,62 @@ +import expatWasm from '@cpp.js/package-expat-wasm/cppjs.config.js'; +import geosWasm from '@cpp.js/package-geos-wasm/cppjs.config.js'; +import geotiffWasm from '@cpp.js/package-geotiff-wasm/cppjs.config.js'; +import iconvWasm from '@cpp.js/package-iconv-wasm/cppjs.config.js'; +import projWasm from '@cpp.js/package-proj-wasm/cppjs.config.js'; +import spatialiteWasm from '@cpp.js/package-spatialite-wasm/cppjs.config.js'; +import sqlite3Wasm from '@cpp.js/package-sqlite3-wasm/cppjs.config.js'; +import tiffWasm from '@cpp.js/package-tiff-wasm/cppjs.config.js'; +import webpWasm from '@cpp.js/package-webp-wasm/cppjs.config.js'; +import zlibWasm from '@cpp.js/package-zlib-wasm/cppjs.config.js'; + +export default { + dependencies: [ + expatWasm, + geosWasm, + geotiffWasm, + iconvWasm, + projWasm, + spatialiteWasm, + sqlite3Wasm, + tiffWasm, + webpWasm, + zlibWasm, + ], + general: { + name: 'gdal' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Emscripten-x86_64-browser': { + 'data': { + 'share/gdal': '/usr/share/gdal' + }, + env: { + GDAL_DATA: '/usr/share/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_NUM_THREADS: '0', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + }, + 'Emscripten-x86_64-node': { + 'data': { + 'share/gdal': 'gdal' + }, + env: { + GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', + DXF_FEATURE_LIMIT_PER_BLOCK: '-1', + GDAL_NUM_THREADS: '0', + GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', + CPL_LOG_ERRORS: 'ON' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/package.json new file mode 100644 index 00000000..892b0cad --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/package.json @@ -0,0 +1,40 @@ +{ + "name": "@cpp.js/package-gdal-wasm", + "version": "1.0.0", + "nativeVersion": "3.10.3", + "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-expat-wasm": "workspace:^", + "@cpp.js/package-geos-wasm": "workspace:^", + "@cpp.js/package-geotiff-wasm": "workspace:^", + "@cpp.js/package-iconv-wasm": "workspace:^", + "@cpp.js/package-proj-wasm": "workspace:^", + "@cpp.js/package-spatialite-wasm": "workspace:^", + "@cpp.js/package-sqlite3-wasm": "workspace:^", + "@cpp.js/package-tiff-wasm": "workspace:^", + "@cpp.js/package-webp-wasm": "workspace:^", + "@cpp.js/package-zlib-wasm": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/.npmignore b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/.npmignore new file mode 100644 index 00000000..ca435ded --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/.npmignore @@ -0,0 +1,11 @@ +dist/prebuilt/iOS-iphoneos/lib +dist/prebuilt/iOS-iphonesimulator/lib +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin +dist/prebuilt/**/share/bash-completion +dist/prebuilt/**/share/man diff --git a/packages/cppjs-package-gdal/CHANGELOG.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-gdal/CHANGELOG.md rename to cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/LICENSE b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/LICENSE new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/LICENSE @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/README.md b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/README.md new file mode 100644 index 00000000..0a243d4a --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-gdal +**Precompiled gdal library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-gdal +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import gdal from '@cpp.js/package-gdal/cppjs.config.js'; + +export default { + dependencies: [ ++ gdal + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the gdal in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GDAL_RELEASE_NAME); +} +``` + +## License +This project includes the precompiled GDAL library, which is distributed under the [MIT License](https://github.com/OSGeo/gdal/blob/master/LICENSE.TXT). + +GDAL Homepage: [https://gdal.org/](https://gdal.org/) diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/assets/gdal_empty_file.cpp b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/assets/gdal_empty_file.cpp new file mode 100644 index 00000000..e69de29b diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs-package-gdal.podspec b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs-package-gdal.podspec new file mode 100644 index 00000000..ca40085c --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs-package-gdal.podspec @@ -0,0 +1,15 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "gdal" + s.name = "cppjs-package-gdal" + s.version = package["nativeVersion"] + s.summary = "GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats." + s.homepage = "https://github.com/OSGeo/gdal" + s.author = "GDAL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'gdal.xcframework', 'expat.xcframework', 'geos.xcframework', 'geotiff.xcframework', 'iconv.xcframework', 'proj.xcframework', 'spatialite.xcframework', 'sqlite3.xcframework', 'tiff.xcframework', 'webp.xcframework', 'z.xcframework' + s.library = 'xml2' + s.resources = ['dist/prebuilt/iOS-iphoneos/share/gdal'] +end diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.build.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.build.js new file mode 100644 index 00000000..86074327 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.build.js @@ -0,0 +1,59 @@ +const platformCmake = { + 'Emscripten-x86_64': ['-DBUILD_SHARED_LIBS=OFF'], + 'Android-arm64-v8a': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], + 'Android-x86_64': ['-DCMAKE_ANDROID_STL_TYPE=c++_shared'], +}; + +export default { + getURL: (version) => `https://github.com/OSGeo/gdal/releases/download/v${version}/gdal-${version}.tar.gz`, + copyToSource: { 'assets/gdal_empty_file.cpp': 'gcore/gdal_empty_file.cpp' }, + replaceList: [ + { + regex: ' iconv_open', + replacement: ' libiconv_open', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' iconv', + replacement: ' libiconv', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: '#include ', + replacement: '# include \nextern "C" {\n extern __attribute__((__visibility__("default"))) iconv_t libiconv_open (const char* tocode, const char* fromcode);\n extern __attribute__((__visibility__("default"))) size_t libiconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);\n}', + paths: ['port/cpl_recode_iconv.cpp'], + }, + { + regex: ' add_subdirectory\\(swig\\)', + replacement: '', + paths: ['gdal.cmake'], + }, + { + regex: 'add_library\\(\\$\\{GDAL_LIB_TARGET_NAME\\} gcore/gdal.h\\)', + replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)', + paths: ['gdal.cmake'], + }, + ], + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + ...(platformCmake[platform] || []), + '-DBUILD_APPS=OFF', '-DBUILD_TESTING=OFF', '-DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC=ON', + '-DOGR_ENABLE_DRIVER_GPSBABEL=OFF', '-DGDAL_USE_HDF5=OFF', '-DGDAL_USE_HDFS=OFF', + '-DGDAL_USE_ZSTD=OFF', '-DGDAL_ENABLE_DRIVER_PDS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DPROJ_INCLUDE_DIR=${depPaths.proj.header}`, `-DPROJ_LIBRARY_RELEASE=${depPaths.proj.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + `-DGEOTIFF_INCLUDE_DIR=${depPaths.geotiff.header}`, `-DGEOTIFF_LIBRARY_RELEASE=${depPaths.geotiff.lib}`, + `-DZLIB_INCLUDE_DIR=${depPaths.z.header}`, `-DZLIB_LIBRARY_RELEASE=${depPaths.z.lib}`, + `-DSPATIALITE_INCLUDE_DIR=${depPaths.spatialite.header}`, `-DSPATIALITE_LIBRARY=${depPaths.spatialite.lib}`, + `-DGEOS_INCLUDE_DIR=${depPaths.geos.header}`, `-DGEOS_LIBRARY=${depPaths.geos_c.lib}`, + `-DWEBP_INCLUDE_DIR=${depPaths.webp.header}`, `-DWEBP_LIBRARY=${depPaths.webp.lib}`, + `-DEXPAT_INCLUDE_DIR=${depPaths.expat.header}`, `-DEXPAT_LIBRARY=${depPaths.expat.lib}`, + `-DIconv_INCLUDE_DIR=${depPaths.iconv.header}`, `-DIconv_LIBRARY=${depPaths.iconv.lib}`, + ], + env: [ + 'CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'CPPFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + 'EMCC_CFLAGS="-DRENAME_INTERNAL_LIBTIFF_SYMBOLS"', + ], +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.config.js b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.config.js new file mode 100644 index 00000000..0d316ed6 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/cppjs.config.js @@ -0,0 +1,14 @@ +import gdalWasm from '@cpp.js/package-gdal-wasm/cppjs.config.js'; +import gdalAndroid from '@cpp.js/package-gdal-android/cppjs.config.js'; +import gdalIos from '@cpp.js/package-gdal-ios/cppjs.config.js'; + +export default { + dependencies: [ + gdalWasm, + gdalAndroid, + gdalIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/package.json b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/package.json new file mode 100644 index 00000000..dd094357 --- /dev/null +++ b/cppjs-packages/cppjs-package-gdal/cppjs-package-gdal/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-gdal", + "version": "1.0.0", + "nativeVersion": "3.10.3", + "description": "This package provides the precompiled GDAL, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It enables advanced geospatial data processing, including raster and vector data manipulation, format conversion, and spatial analysis, ensuring high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-gdal#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "gdal", + "libgdal", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-gdal-wasm": "workspace:^", + "@cpp.js/package-gdal-android": "workspace:^", + "@cpp.js/package-gdal-ios": "workspace:^" + } +} diff --git a/packages/cppjs-package-geos/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/.npmignore similarity index 100% rename from packages/cppjs-package-geos/.npmignore rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/.npmignore diff --git a/packages/cppjs-package-geos/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-geos/LICENSE rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/LICENSE diff --git a/packages/cppjs-package-geos/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-geos/README.md rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/README.md diff --git a/packages/cppjs-package-geos/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-geos/cppjs.build.js rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/cppjs.build.js diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/cppjs.config.js new file mode 100644 index 00000000..1a754579 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'geos' + }, + export: { + type: 'cmake', + libName: [ + 'geos', + 'geos_c' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/package.json new file mode 100644 index 00000000..94879839 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-geos-android-multithread", + "version": "1.0.0", + "nativeVersion": "3.13.1", + "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL-2.1-or-later", + "keywords": [ + "geos", + "libgeos", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/.npmignore new file mode 100644 index 00000000..a41f26d0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/.npmignore @@ -0,0 +1,6 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a diff --git a/packages/cppjs-package-iconv/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/LICENSE similarity index 100% rename from packages/cppjs-package-iconv/LICENSE rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/LICENSE diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/README.md new file mode 100644 index 00000000..b90c3d12 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geos +**Precompiled geos library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geos +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geos from '@cpp.js/package-geos/cppjs.config.js'; + +export default { + dependencies: [ ++ geos + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geos in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GEOSversion()); +} +``` + +## License +This project includes the precompiled geos library, which is distributed under the [LGPL License](https://github.com/libgeos/geos/blob/main/COPYING). + +GEOS Homepage: [https://github.com/libgeos/geos](https://github.com/libgeos/geos) diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.build.js new file mode 100644 index 00000000..00e74146 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.build.js @@ -0,0 +1,7 @@ +export default { + getURL: (version) => `https://download.osgeo.org/geos/geos-${version}.tar.bz2`, + buildType: 'cmake', + getBuildParams: () => [ + '-DBUILD_TESTING=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.config.js new file mode 100644 index 00000000..5d0baeb7 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'geos' + }, + export: { + type: 'cmake', + libName: [ + 'geos', + 'geos_c' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/package.json new file mode 100644 index 00000000..efa29ead --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-android/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-geos-android", + "version": "1.0.0", + "nativeVersion": "3.13.1", + "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL-2.1-or-later", + "keywords": [ + "geos", + "libgeos", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/.npmignore new file mode 100644 index 00000000..a41f26d0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/.npmignore @@ -0,0 +1,6 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/README.md new file mode 100644 index 00000000..b90c3d12 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geos +**Precompiled geos library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geos +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geos from '@cpp.js/package-geos/cppjs.config.js'; + +export default { + dependencies: [ ++ geos + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geos in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GEOSversion()); +} +``` + +## License +This project includes the precompiled geos library, which is distributed under the [LGPL License](https://github.com/libgeos/geos/blob/main/COPYING). + +GEOS Homepage: [https://github.com/libgeos/geos](https://github.com/libgeos/geos) diff --git a/packages/cppjs-package-geos/cppjs-package-geos.podspec b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs-package-geos.podspec similarity index 100% rename from packages/cppjs-package-geos/cppjs-package-geos.podspec rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs-package-geos.podspec diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..00e74146 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.build.js @@ -0,0 +1,7 @@ +export default { + getURL: (version) => `https://download.osgeo.org/geos/geos-${version}.tar.bz2`, + buildType: 'cmake', + getBuildParams: () => [ + '-DBUILD_TESTING=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..1a754579 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'geos' + }, + export: { + type: 'cmake', + libName: [ + 'geos', + 'geos_c' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/package.json new file mode 100644 index 00000000..b6c14c19 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-geos-ios-multithread", + "version": "1.0.0", + "nativeVersion": "3.13.1", + "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL-2.1-or-later", + "keywords": [ + "geos", + "libgeos", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/.npmignore new file mode 100644 index 00000000..a41f26d0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/.npmignore @@ -0,0 +1,6 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/README.md new file mode 100644 index 00000000..b90c3d12 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geos +**Precompiled geos library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geos +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geos from '@cpp.js/package-geos/cppjs.config.js'; + +export default { + dependencies: [ ++ geos + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geos in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GEOSversion()); +} +``` + +## License +This project includes the precompiled geos library, which is distributed under the [LGPL License](https://github.com/libgeos/geos/blob/main/COPYING). + +GEOS Homepage: [https://github.com/libgeos/geos](https://github.com/libgeos/geos) diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs-package-geos.podspec b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs-package-geos.podspec new file mode 100644 index 00000000..77ce5be1 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs-package-geos.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "geos" + s.name = "cppjs-package-geos" + s.version = package["nativeVersion"] + s.summary = "GEOS is a C++ library for performing operations on two-dimensional vector geometries." + s.homepage = "https://github.com/libgeos/geos" + s.author = "GEOS Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'geos.xcframework', 'geos_c.xcframework' +end diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.build.js new file mode 100644 index 00000000..00e74146 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.build.js @@ -0,0 +1,7 @@ +export default { + getURL: (version) => `https://download.osgeo.org/geos/geos-${version}.tar.bz2`, + buildType: 'cmake', + getBuildParams: () => [ + '-DBUILD_TESTING=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.config.js new file mode 100644 index 00000000..5d0baeb7 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'geos' + }, + export: { + type: 'cmake', + libName: [ + 'geos', + 'geos_c' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/packages/cppjs-package-geos/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/package.json similarity index 85% rename from packages/cppjs-package-geos/package.json rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/package.json index 38625956..be77a227 100644 --- a/packages/cppjs-package-geos/package.json +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios/package.json @@ -1,28 +1,28 @@ { - "name": "@cpp.js/package-geos", + "name": "@cpp.js/package-geos-ios", "version": "1.0.0", "nativeVersion": "3.13.1", "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "LGPL-2.1-or-later", "type": "module", - "scripts": { - "build": "cppjs build", - "build:wasm": "cppjs build -p WebAssembly", - "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" - }, - "devDependencies": { - "cpp.js": "workspace:^" - }, + "license": "LGPL-2.1-or-later", "keywords": [ "geos", "libgeos", "cpp.js-package", "webassembly", "react-native" - ] + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } } diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/.npmignore new file mode 100644 index 00000000..a41f26d0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/.npmignore @@ -0,0 +1,6 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/README.md new file mode 100644 index 00000000..b90c3d12 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geos +**Precompiled geos library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geos +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geos from '@cpp.js/package-geos/cppjs.config.js'; + +export default { + dependencies: [ ++ geos + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geos in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GEOSversion()); +} +``` + +## License +This project includes the precompiled geos library, which is distributed under the [LGPL License](https://github.com/libgeos/geos/blob/main/COPYING). + +GEOS Homepage: [https://github.com/libgeos/geos](https://github.com/libgeos/geos) diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.build.js new file mode 100644 index 00000000..00e74146 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.build.js @@ -0,0 +1,7 @@ +export default { + getURL: (version) => `https://download.osgeo.org/geos/geos-${version}.tar.bz2`, + buildType: 'cmake', + getBuildParams: () => [ + '-DBUILD_TESTING=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.config.js new file mode 100644 index 00000000..6296d746 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import geosWasmMultithread from '@cpp.js/package-geos-wasm-multithread/cppjs.config.js'; +import geosAndroidMultithread from '@cpp.js/package-geos-android-multithread/cppjs.config.js'; +import geosIosMultithread from '@cpp.js/package-geos-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + geosWasmMultithread, + geosAndroidMultithread, + geosIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/package.json new file mode 100644 index 00000000..17f0d653 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-geos-multithread", + "version": "1.0.0", + "nativeVersion": "3.13.1", + "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL-2.1-or-later", + "keywords": [ + "geos", + "libgeos", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-geos-wasm-multithread": "workspace:^", + "@cpp.js/package-geos-android-multithread": "workspace:^", + "@cpp.js/package-geos-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/.npmignore new file mode 100644 index 00000000..a41f26d0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/.npmignore @@ -0,0 +1,6 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/README.md new file mode 100644 index 00000000..b90c3d12 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geos +**Precompiled geos library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geos +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geos from '@cpp.js/package-geos/cppjs.config.js'; + +export default { + dependencies: [ ++ geos + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geos in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GEOSversion()); +} +``` + +## License +This project includes the precompiled geos library, which is distributed under the [LGPL License](https://github.com/libgeos/geos/blob/main/COPYING). + +GEOS Homepage: [https://github.com/libgeos/geos](https://github.com/libgeos/geos) diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..00e74146 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.build.js @@ -0,0 +1,7 @@ +export default { + getURL: (version) => `https://download.osgeo.org/geos/geos-${version}.tar.bz2`, + buildType: 'cmake', + getBuildParams: () => [ + '-DBUILD_TESTING=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..1a754579 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'geos' + }, + export: { + type: 'cmake', + libName: [ + 'geos', + 'geos_c' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/package.json new file mode 100644 index 00000000..b8f2af72 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-geos-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "3.13.1", + "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL-2.1-or-later", + "keywords": [ + "geos", + "libgeos", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/.npmignore new file mode 100644 index 00000000..a41f26d0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/.npmignore @@ -0,0 +1,6 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/README.md new file mode 100644 index 00000000..b90c3d12 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geos +**Precompiled geos library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geos +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geos from '@cpp.js/package-geos/cppjs.config.js'; + +export default { + dependencies: [ ++ geos + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geos in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GEOSversion()); +} +``` + +## License +This project includes the precompiled geos library, which is distributed under the [LGPL License](https://github.com/libgeos/geos/blob/main/COPYING). + +GEOS Homepage: [https://github.com/libgeos/geos](https://github.com/libgeos/geos) diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.build.js new file mode 100644 index 00000000..00e74146 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.build.js @@ -0,0 +1,7 @@ +export default { + getURL: (version) => `https://download.osgeo.org/geos/geos-${version}.tar.bz2`, + buildType: 'cmake', + getBuildParams: () => [ + '-DBUILD_TESTING=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.config.js new file mode 100644 index 00000000..5d0baeb7 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'geos' + }, + export: { + type: 'cmake', + libName: [ + 'geos', + 'geos_c' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/package.json new file mode 100644 index 00000000..0141d1c4 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-geos-wasm", + "version": "1.0.0", + "nativeVersion": "3.13.1", + "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL-2.1-or-later", + "keywords": [ + "geos", + "libgeos", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos/.npmignore b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/.npmignore new file mode 100644 index 00000000..a41f26d0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/.npmignore @@ -0,0 +1,6 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a diff --git a/packages/cppjs-package-geos/CHANGELOG.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-geos/CHANGELOG.md rename to cppjs-packages/cppjs-package-geos/cppjs-package-geos/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos/LICENSE b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos/README.md b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/README.md new file mode 100644 index 00000000..b90c3d12 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geos +**Precompiled geos library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geos +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geos from '@cpp.js/package-geos/cppjs.config.js'; + +export default { + dependencies: [ ++ geos + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geos in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(GEOSversion()); +} +``` + +## License +This project includes the precompiled geos library, which is distributed under the [LGPL License](https://github.com/libgeos/geos/blob/main/COPYING). + +GEOS Homepage: [https://github.com/libgeos/geos](https://github.com/libgeos/geos) diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs-package-geos.podspec b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs-package-geos.podspec new file mode 100644 index 00000000..77ce5be1 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs-package-geos.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "geos" + s.name = "cppjs-package-geos" + s.version = package["nativeVersion"] + s.summary = "GEOS is a C++ library for performing operations on two-dimensional vector geometries." + s.homepage = "https://github.com/libgeos/geos" + s.author = "GEOS Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'geos.xcframework', 'geos_c.xcframework' +end diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.build.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.build.js new file mode 100644 index 00000000..00e74146 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.build.js @@ -0,0 +1,7 @@ +export default { + getURL: (version) => `https://download.osgeo.org/geos/geos-${version}.tar.bz2`, + buildType: 'cmake', + getBuildParams: () => [ + '-DBUILD_TESTING=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.config.js b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.config.js new file mode 100644 index 00000000..fe5ac603 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/cppjs.config.js @@ -0,0 +1,14 @@ +import geosWasm from '@cpp.js/package-geos-wasm/cppjs.config.js'; +import geosAndroid from '@cpp.js/package-geos-android/cppjs.config.js'; +import geosIos from '@cpp.js/package-geos-ios/cppjs.config.js'; + +export default { + dependencies: [ + geosWasm, + geosAndroid, + geosIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-geos/cppjs-package-geos/package.json b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/package.json new file mode 100644 index 00000000..f5f44782 --- /dev/null +++ b/cppjs-packages/cppjs-package-geos/cppjs-package-geos/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-geos", + "version": "1.0.0", + "nativeVersion": "3.13.1", + "description": "This package provides the precompiled GEOS library, built using Cpp.js, for seamless integration into JavaScript, WebAssembly, and React Native projects. It supports advanced geometry operations, including spatial analysis and topological calculations, delivering high performance and cross-platform compatibility. Perfect for web, server-side, and mobile geospatial applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geos#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL-2.1-or-later", + "keywords": [ + "geos", + "libgeos", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-geos-wasm": "workspace:^", + "@cpp.js/package-geos-android": "workspace:^", + "@cpp.js/package-geos-ios": "workspace:^" + } +} diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/.npmignore similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/.npmignore rename to cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/.npmignore diff --git a/packages/cppjs-package-geotiff/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-geotiff/LICENSE rename to cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/LICENSE diff --git a/packages/cppjs-package-geotiff/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-geotiff/README.md rename to cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/README.md diff --git a/packages/cppjs-package-geotiff/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/cppjs.build.js similarity index 84% rename from packages/cppjs-package-geotiff/cppjs.build.js rename to cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/cppjs.build.js index d56217ec..8ea8e5ef 100644 --- a/packages/cppjs-package-geotiff/cppjs.build.js +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/cppjs.build.js @@ -22,4 +22,11 @@ export default { `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, ], getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], }; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/cppjs.config.js new file mode 100644 index 00000000..1d7606a1 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/cppjs.config.js @@ -0,0 +1,25 @@ +import projAndroidMultithread from '@cpp.js/package-proj-android-multithread/cppjs.config.js'; +import tiffAndroidMultithread from '@cpp.js/package-tiff-android-multithread/cppjs.config.js'; +import zlibAndroidMultithread from '@cpp.js/package-zlib-android-multithread/cppjs.config.js'; + +export default { + dependencies: [ + projAndroidMultithread, + tiffAndroidMultithread, + zlibAndroidMultithread, + ], + general: { + name: 'geotiff' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/package.json new file mode 100644 index 00000000..ea0634d4 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread/package.json @@ -0,0 +1,33 @@ +{ + "name": "@cpp.js/package-geotiff-android-multithread", + "version": "1.0.0", + "nativeVersion": "1.7.4", + "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-proj-android-multithread": "workspace:^", + "@cpp.js/package-tiff-android-multithread": "workspace:^", + "@cpp.js/package-zlib-android-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/LICENSE new file mode 100644 index 00000000..89a5b9b6 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/LICENSE @@ -0,0 +1,81 @@ + + libgeotiff Licensing + ==================== + +All the source code in this toolkit are either in the public domain, or under +the MIT License. In any event it is all considered to be free to use +for any purpose (including commercial software). No credit is required +though some of the code requires that the specific source code modules +retain their existing copyright statements. In +particular, no part of this code is "copyleft", nor does it imply any +requirement for users to disclose this or their own source code. + +All components not carrying their own copyright message, but distributed +with libgeotiff should be considered to be under the same license as +Niles' code. + +--------- + +Code by Frank Warmerdam has this copyright notice (directly copied from +X Consortium licence): + + * Copyright (c) 1999, Frank Warmerdam + * + * 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. + +----------- + +Code by Niles Ritter is under this licence: + + * Written By: Niles D. Ritter. + * + * copyright (c) 1995 Niles D. Ritter + * + * Permission granted to use this software, so long as this copyright + * notice accompanies any products derived therefrom. + +---------- + +The cmake/*.cmake macros are under the following BSD license. This does +not affect produced binaries or the library. + +-- + +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 copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/README.md new file mode 100644 index 00000000..bf3bcbc9 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geotiff +**Precompiled geotiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geotiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; + +export default { + dependencies: [ ++ geotiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geotiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(LIBGEOTIFF_VERSION); +} +``` + +## License +This project includes the precompiled libgeotiff library, which is distributed under the [MIT License](https://github.com/OSGeo/libgeotiff/blob/master/libgeotiff/LICENSE). + +GeoTiff Homepage: [https://github.com/OSGeo/libgeotiff](https://github.com/OSGeo/libgeotiff) diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.build.js new file mode 100644 index 00000000..8ea8e5ef --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.build.js @@ -0,0 +1,32 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformExtraLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++'], + 'Android-x86_64': ['-lstdc++'], + 'iOS-iphoneos': ['-lstdc++'], + 'iOS-iphonesimulator': ['-lstdc++'], +}; + +export default { + getURL: (version) => `https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, + ], + getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.config.js new file mode 100644 index 00000000..e04f8a87 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/cppjs.config.js @@ -0,0 +1,22 @@ +import projAndroid from '@cpp.js/package-proj-android/cppjs.config.js'; +import tiffAndroid from '@cpp.js/package-tiff-android/cppjs.config.js'; +import zlibAndroid from '@cpp.js/package-zlib-android/cppjs.config.js'; + +export default { + dependencies: [ + projAndroid, + tiffAndroid, + zlibAndroid, + ], + general: { + name: 'geotiff' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/package.json new file mode 100644 index 00000000..382b5ba5 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android/package.json @@ -0,0 +1,33 @@ +{ + "name": "@cpp.js/package-geotiff-android", + "version": "1.0.0", + "nativeVersion": "1.7.4", + "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-proj-android": "workspace:^", + "@cpp.js/package-tiff-android": "workspace:^", + "@cpp.js/package-zlib-android": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/LICENSE new file mode 100644 index 00000000..89a5b9b6 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/LICENSE @@ -0,0 +1,81 @@ + + libgeotiff Licensing + ==================== + +All the source code in this toolkit are either in the public domain, or under +the MIT License. In any event it is all considered to be free to use +for any purpose (including commercial software). No credit is required +though some of the code requires that the specific source code modules +retain their existing copyright statements. In +particular, no part of this code is "copyleft", nor does it imply any +requirement for users to disclose this or their own source code. + +All components not carrying their own copyright message, but distributed +with libgeotiff should be considered to be under the same license as +Niles' code. + +--------- + +Code by Frank Warmerdam has this copyright notice (directly copied from +X Consortium licence): + + * Copyright (c) 1999, Frank Warmerdam + * + * 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. + +----------- + +Code by Niles Ritter is under this licence: + + * Written By: Niles D. Ritter. + * + * copyright (c) 1995 Niles D. Ritter + * + * Permission granted to use this software, so long as this copyright + * notice accompanies any products derived therefrom. + +---------- + +The cmake/*.cmake macros are under the following BSD license. This does +not affect produced binaries or the library. + +-- + +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 copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/README.md new file mode 100644 index 00000000..bf3bcbc9 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geotiff +**Precompiled geotiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geotiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; + +export default { + dependencies: [ ++ geotiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geotiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(LIBGEOTIFF_VERSION); +} +``` + +## License +This project includes the precompiled libgeotiff library, which is distributed under the [MIT License](https://github.com/OSGeo/libgeotiff/blob/master/libgeotiff/LICENSE). + +GeoTiff Homepage: [https://github.com/OSGeo/libgeotiff](https://github.com/OSGeo/libgeotiff) diff --git a/packages/cppjs-package-geotiff/cppjs-package-geotiff.podspec b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs-package-geotiff.podspec similarity index 100% rename from packages/cppjs-package-geotiff/cppjs-package-geotiff.podspec rename to cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs-package-geotiff.podspec diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..8ea8e5ef --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.build.js @@ -0,0 +1,32 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformExtraLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++'], + 'Android-x86_64': ['-lstdc++'], + 'iOS-iphoneos': ['-lstdc++'], + 'iOS-iphonesimulator': ['-lstdc++'], +}; + +export default { + getURL: (version) => `https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, + ], + getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..f80c14a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/cppjs.config.js @@ -0,0 +1,25 @@ +import projIosMultithread from '@cpp.js/package-proj-ios-multithread/cppjs.config.js'; +import tiffIosMultithread from '@cpp.js/package-tiff-ios-multithread/cppjs.config.js'; +import zlibIosMultithread from '@cpp.js/package-zlib-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + projIosMultithread, + tiffIosMultithread, + zlibIosMultithread, + ], + general: { + name: 'geotiff' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/package.json new file mode 100644 index 00000000..36f4e2a1 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread/package.json @@ -0,0 +1,33 @@ +{ + "name": "@cpp.js/package-geotiff-ios-multithread", + "version": "1.0.0", + "nativeVersion": "1.7.4", + "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-proj-ios-multithread": "workspace:^", + "@cpp.js/package-tiff-ios-multithread": "workspace:^", + "@cpp.js/package-zlib-ios-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/LICENSE new file mode 100644 index 00000000..89a5b9b6 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/LICENSE @@ -0,0 +1,81 @@ + + libgeotiff Licensing + ==================== + +All the source code in this toolkit are either in the public domain, or under +the MIT License. In any event it is all considered to be free to use +for any purpose (including commercial software). No credit is required +though some of the code requires that the specific source code modules +retain their existing copyright statements. In +particular, no part of this code is "copyleft", nor does it imply any +requirement for users to disclose this or their own source code. + +All components not carrying their own copyright message, but distributed +with libgeotiff should be considered to be under the same license as +Niles' code. + +--------- + +Code by Frank Warmerdam has this copyright notice (directly copied from +X Consortium licence): + + * Copyright (c) 1999, Frank Warmerdam + * + * 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. + +----------- + +Code by Niles Ritter is under this licence: + + * Written By: Niles D. Ritter. + * + * copyright (c) 1995 Niles D. Ritter + * + * Permission granted to use this software, so long as this copyright + * notice accompanies any products derived therefrom. + +---------- + +The cmake/*.cmake macros are under the following BSD license. This does +not affect produced binaries or the library. + +-- + +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 copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/README.md new file mode 100644 index 00000000..bf3bcbc9 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geotiff +**Precompiled geotiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geotiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; + +export default { + dependencies: [ ++ geotiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geotiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(LIBGEOTIFF_VERSION); +} +``` + +## License +This project includes the precompiled libgeotiff library, which is distributed under the [MIT License](https://github.com/OSGeo/libgeotiff/blob/master/libgeotiff/LICENSE). + +GeoTiff Homepage: [https://github.com/OSGeo/libgeotiff](https://github.com/OSGeo/libgeotiff) diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs-package-geotiff.podspec b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs-package-geotiff.podspec new file mode 100644 index 00000000..b00af098 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs-package-geotiff.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "geotiff" + s.name = "cppjs-package-geotiff" + s.version = package["nativeVersion"] + s.summary = "This library is designed to permit the extraction and parsing of the 'GeoTIFF' Key directories, as well as definition and installation of GeoTIFF keys in new files." + s.homepage = "https://github.com/OSGeo/libgeotiff" + s.author = "GeoTiff Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'geotiff.xcframework', 'proj.xcframework', 'tiff.xcframework', 'z.xcframework' +end diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.build.js new file mode 100644 index 00000000..8ea8e5ef --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.build.js @@ -0,0 +1,32 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformExtraLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++'], + 'Android-x86_64': ['-lstdc++'], + 'iOS-iphoneos': ['-lstdc++'], + 'iOS-iphonesimulator': ['-lstdc++'], +}; + +export default { + getURL: (version) => `https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, + ], + getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.config.js new file mode 100644 index 00000000..77f79d43 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.config.js @@ -0,0 +1,22 @@ +import projIos from '@cpp.js/package-proj-ios/cppjs.config.js'; +import tiffIos from '@cpp.js/package-tiff-ios/cppjs.config.js'; +import zlibIos from '@cpp.js/package-zlib-ios/cppjs.config.js'; + +export default { + dependencies: [ + projIos, + tiffIos, + zlibIos, + ], + general: { + name: 'geotiff' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/packages/cppjs-package-geotiff/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/package.json similarity index 75% rename from packages/cppjs-package-geotiff/package.json rename to cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/package.json index c5fde53f..f7a1f4b2 100644 --- a/packages/cppjs-package-geotiff/package.json +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/package.json @@ -1,33 +1,33 @@ { - "name": "@cpp.js/package-geotiff", + "name": "@cpp.js/package-geotiff-ios", "version": "1.0.0", "nativeVersion": "1.7.4", "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "MIT", "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], "scripts": { - "build": "cppjs build", + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", "build:wasm": "cppjs build -p WebAssembly", "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" + "build:ios": "cppjs build -p iOS" }, "dependencies": { - "@cpp.js/package-proj": "workspace:^", - "@cpp.js/package-tiff": "workspace:^", - "@cpp.js/package-zlib": "workspace:^" + "@cpp.js/package-proj-ios": "workspace:^", + "@cpp.js/package-tiff-ios": "workspace:^", + "@cpp.js/package-zlib-ios": "workspace:^" }, "devDependencies": { "cpp.js": "workspace:^" - }, - "keywords": [ - "geotiff", - "libgeotiff", - "cpp.js-package", - "webassembly", - "react-native" - ] + } } diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/LICENSE new file mode 100644 index 00000000..89a5b9b6 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/LICENSE @@ -0,0 +1,81 @@ + + libgeotiff Licensing + ==================== + +All the source code in this toolkit are either in the public domain, or under +the MIT License. In any event it is all considered to be free to use +for any purpose (including commercial software). No credit is required +though some of the code requires that the specific source code modules +retain their existing copyright statements. In +particular, no part of this code is "copyleft", nor does it imply any +requirement for users to disclose this or their own source code. + +All components not carrying their own copyright message, but distributed +with libgeotiff should be considered to be under the same license as +Niles' code. + +--------- + +Code by Frank Warmerdam has this copyright notice (directly copied from +X Consortium licence): + + * Copyright (c) 1999, Frank Warmerdam + * + * 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. + +----------- + +Code by Niles Ritter is under this licence: + + * Written By: Niles D. Ritter. + * + * copyright (c) 1995 Niles D. Ritter + * + * Permission granted to use this software, so long as this copyright + * notice accompanies any products derived therefrom. + +---------- + +The cmake/*.cmake macros are under the following BSD license. This does +not affect produced binaries or the library. + +-- + +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 copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/README.md new file mode 100644 index 00000000..bf3bcbc9 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geotiff +**Precompiled geotiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geotiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; + +export default { + dependencies: [ ++ geotiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geotiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(LIBGEOTIFF_VERSION); +} +``` + +## License +This project includes the precompiled libgeotiff library, which is distributed under the [MIT License](https://github.com/OSGeo/libgeotiff/blob/master/libgeotiff/LICENSE). + +GeoTiff Homepage: [https://github.com/OSGeo/libgeotiff](https://github.com/OSGeo/libgeotiff) diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.build.js new file mode 100644 index 00000000..8ea8e5ef --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.build.js @@ -0,0 +1,32 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformExtraLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++'], + 'Android-x86_64': ['-lstdc++'], + 'iOS-iphoneos': ['-lstdc++'], + 'iOS-iphonesimulator': ['-lstdc++'], +}; + +export default { + getURL: (version) => `https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, + ], + getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.config.js new file mode 100644 index 00000000..c9222ff0 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import geotiffWasmMultithread from '@cpp.js/package-geotiff-wasm-multithread/cppjs.config.js'; +import geotiffAndroidMultithread from '@cpp.js/package-geotiff-android-multithread/cppjs.config.js'; +import geotiffIosMultithread from '@cpp.js/package-geotiff-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + geotiffWasmMultithread, + geotiffAndroidMultithread, + geotiffIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/package.json new file mode 100644 index 00000000..c121b45d --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-geotiff-multithread", + "version": "1.0.0", + "nativeVersion": "1.7.4", + "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-geotiff-wasm-multithread": "workspace:^", + "@cpp.js/package-geotiff-android-multithread": "workspace:^", + "@cpp.js/package-geotiff-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/LICENSE new file mode 100644 index 00000000..89a5b9b6 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/LICENSE @@ -0,0 +1,81 @@ + + libgeotiff Licensing + ==================== + +All the source code in this toolkit are either in the public domain, or under +the MIT License. In any event it is all considered to be free to use +for any purpose (including commercial software). No credit is required +though some of the code requires that the specific source code modules +retain their existing copyright statements. In +particular, no part of this code is "copyleft", nor does it imply any +requirement for users to disclose this or their own source code. + +All components not carrying their own copyright message, but distributed +with libgeotiff should be considered to be under the same license as +Niles' code. + +--------- + +Code by Frank Warmerdam has this copyright notice (directly copied from +X Consortium licence): + + * Copyright (c) 1999, Frank Warmerdam + * + * 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. + +----------- + +Code by Niles Ritter is under this licence: + + * Written By: Niles D. Ritter. + * + * copyright (c) 1995 Niles D. Ritter + * + * Permission granted to use this software, so long as this copyright + * notice accompanies any products derived therefrom. + +---------- + +The cmake/*.cmake macros are under the following BSD license. This does +not affect produced binaries or the library. + +-- + +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 copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/README.md new file mode 100644 index 00000000..bf3bcbc9 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geotiff +**Precompiled geotiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geotiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; + +export default { + dependencies: [ ++ geotiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geotiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(LIBGEOTIFF_VERSION); +} +``` + +## License +This project includes the precompiled libgeotiff library, which is distributed under the [MIT License](https://github.com/OSGeo/libgeotiff/blob/master/libgeotiff/LICENSE). + +GeoTiff Homepage: [https://github.com/OSGeo/libgeotiff](https://github.com/OSGeo/libgeotiff) diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..8ea8e5ef --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.build.js @@ -0,0 +1,32 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformExtraLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++'], + 'Android-x86_64': ['-lstdc++'], + 'iOS-iphoneos': ['-lstdc++'], + 'iOS-iphonesimulator': ['-lstdc++'], +}; + +export default { + getURL: (version) => `https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, + ], + getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..6aa88923 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/cppjs.config.js @@ -0,0 +1,25 @@ +import projWasmMultithread from '@cpp.js/package-proj-wasm-multithread/cppjs.config.js'; +import tiffWasmMultithread from '@cpp.js/package-tiff-wasm-multithread/cppjs.config.js'; +import zlibWasmMultithread from '@cpp.js/package-zlib-wasm-multithread/cppjs.config.js'; + +export default { + dependencies: [ + projWasmMultithread, + tiffWasmMultithread, + zlibWasmMultithread, + ], + general: { + name: 'geotiff' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/package.json new file mode 100644 index 00000000..56d52a52 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread/package.json @@ -0,0 +1,33 @@ +{ + "name": "@cpp.js/package-geotiff-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "1.7.4", + "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-proj-wasm-multithread": "workspace:^", + "@cpp.js/package-tiff-wasm-multithread": "workspace:^", + "@cpp.js/package-zlib-wasm-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/LICENSE new file mode 100644 index 00000000..89a5b9b6 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/LICENSE @@ -0,0 +1,81 @@ + + libgeotiff Licensing + ==================== + +All the source code in this toolkit are either in the public domain, or under +the MIT License. In any event it is all considered to be free to use +for any purpose (including commercial software). No credit is required +though some of the code requires that the specific source code modules +retain their existing copyright statements. In +particular, no part of this code is "copyleft", nor does it imply any +requirement for users to disclose this or their own source code. + +All components not carrying their own copyright message, but distributed +with libgeotiff should be considered to be under the same license as +Niles' code. + +--------- + +Code by Frank Warmerdam has this copyright notice (directly copied from +X Consortium licence): + + * Copyright (c) 1999, Frank Warmerdam + * + * 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. + +----------- + +Code by Niles Ritter is under this licence: + + * Written By: Niles D. Ritter. + * + * copyright (c) 1995 Niles D. Ritter + * + * Permission granted to use this software, so long as this copyright + * notice accompanies any products derived therefrom. + +---------- + +The cmake/*.cmake macros are under the following BSD license. This does +not affect produced binaries or the library. + +-- + +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 copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/README.md new file mode 100644 index 00000000..bf3bcbc9 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geotiff +**Precompiled geotiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geotiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; + +export default { + dependencies: [ ++ geotiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geotiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(LIBGEOTIFF_VERSION); +} +``` + +## License +This project includes the precompiled libgeotiff library, which is distributed under the [MIT License](https://github.com/OSGeo/libgeotiff/blob/master/libgeotiff/LICENSE). + +GeoTiff Homepage: [https://github.com/OSGeo/libgeotiff](https://github.com/OSGeo/libgeotiff) diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.build.js new file mode 100644 index 00000000..8ea8e5ef --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.build.js @@ -0,0 +1,32 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformExtraLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++'], + 'Android-x86_64': ['-lstdc++'], + 'iOS-iphoneos': ['-lstdc++'], + 'iOS-iphonesimulator': ['-lstdc++'], +}; + +export default { + getURL: (version) => `https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, + ], + getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.config.js new file mode 100644 index 00000000..f58c78ed --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/cppjs.config.js @@ -0,0 +1,22 @@ +import projWasm from '@cpp.js/package-proj-wasm/cppjs.config.js'; +import tiffWasm from '@cpp.js/package-tiff-wasm/cppjs.config.js'; +import zlibWasm from '@cpp.js/package-zlib-wasm/cppjs.config.js'; + +export default { + dependencies: [ + projWasm, + tiffWasm, + zlibWasm, + ], + general: { + name: 'geotiff' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/package.json new file mode 100644 index 00000000..b3bbe07f --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm/package.json @@ -0,0 +1,33 @@ +{ + "name": "@cpp.js/package-geotiff-wasm", + "version": "1.0.0", + "nativeVersion": "1.7.4", + "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-proj-wasm": "workspace:^", + "@cpp.js/package-tiff-wasm": "workspace:^", + "@cpp.js/package-zlib-wasm": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/.npmignore b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-geotiff/CHANGELOG.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-geotiff/CHANGELOG.md rename to cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/LICENSE b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/LICENSE new file mode 100644 index 00000000..89a5b9b6 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/LICENSE @@ -0,0 +1,81 @@ + + libgeotiff Licensing + ==================== + +All the source code in this toolkit are either in the public domain, or under +the MIT License. In any event it is all considered to be free to use +for any purpose (including commercial software). No credit is required +though some of the code requires that the specific source code modules +retain their existing copyright statements. In +particular, no part of this code is "copyleft", nor does it imply any +requirement for users to disclose this or their own source code. + +All components not carrying their own copyright message, but distributed +with libgeotiff should be considered to be under the same license as +Niles' code. + +--------- + +Code by Frank Warmerdam has this copyright notice (directly copied from +X Consortium licence): + + * Copyright (c) 1999, Frank Warmerdam + * + * 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. + +----------- + +Code by Niles Ritter is under this licence: + + * Written By: Niles D. Ritter. + * + * copyright (c) 1995 Niles D. Ritter + * + * Permission granted to use this software, so long as this copyright + * notice accompanies any products derived therefrom. + +---------- + +The cmake/*.cmake macros are under the following BSD license. This does +not affect produced binaries or the library. + +-- + +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 copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/README.md b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/README.md new file mode 100644 index 00000000..bf3bcbc9 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-geotiff +**Precompiled geotiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-geotiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; + +export default { + dependencies: [ ++ geotiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the geotiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(LIBGEOTIFF_VERSION); +} +``` + +## License +This project includes the precompiled libgeotiff library, which is distributed under the [MIT License](https://github.com/OSGeo/libgeotiff/blob/master/libgeotiff/LICENSE). + +GeoTiff Homepage: [https://github.com/OSGeo/libgeotiff](https://github.com/OSGeo/libgeotiff) diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs-package-geotiff.podspec b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs-package-geotiff.podspec new file mode 100644 index 00000000..b00af098 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs-package-geotiff.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "geotiff" + s.name = "cppjs-package-geotiff" + s.version = package["nativeVersion"] + s.summary = "This library is designed to permit the extraction and parsing of the 'GeoTIFF' Key directories, as well as definition and installation of GeoTIFF keys in new files." + s.homepage = "https://github.com/OSGeo/libgeotiff" + s.author = "GeoTiff Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'geotiff.xcframework', 'proj.xcframework', 'tiff.xcframework', 'z.xcframework' +end diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.build.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.build.js new file mode 100644 index 00000000..8ea8e5ef --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.build.js @@ -0,0 +1,32 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformExtraLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++'], + 'Android-x86_64': ['-lstdc++'], + 'iOS-iphoneos': ['-lstdc++'], + 'iOS-iphonesimulator': ['-lstdc++'], +}; + +export default { + getURL: (version) => `https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + `--with-proj=${depPaths.proj.root}`, `--with-libtiff=${depPaths.tiff.root}`, `--with-zlib=${depPaths.z.root}`, + ], + getExtraLibs: (platform) => platformExtraLibs[platform] || [], + replaceList: [ + { + regex: 'double GTIFAtof\\(const char', + replacement: 'double GTIFAtof2(const char', + paths: ['geo_strtod.c'], + }, + ], +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.config.js b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.config.js new file mode 100644 index 00000000..49a70a17 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/cppjs.config.js @@ -0,0 +1,14 @@ +import geotiffWasm from '@cpp.js/package-geotiff-wasm/cppjs.config.js'; +import geotiffAndroid from '@cpp.js/package-geotiff-android/cppjs.config.js'; +import geotiffIos from '@cpp.js/package-geotiff-ios/cppjs.config.js'; + +export default { + dependencies: [ + geotiffWasm, + geotiffAndroid, + geotiffIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/package.json b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/package.json new file mode 100644 index 00000000..86e695f8 --- /dev/null +++ b/cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-geotiff", + "version": "1.0.0", + "nativeVersion": "1.7.4", + "description": "This package provides the precompiled geotiff library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. Designed for working with GeoTIFF files, offering robust support for geospatial metadata handling, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-geotiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "geotiff", + "libgeotiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-geotiff-wasm": "workspace:^", + "@cpp.js/package-geotiff-android": "workspace:^", + "@cpp.js/package-geotiff-ios": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/packages/cppjs-package-iconv/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-iconv/README.md rename to cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/README.md diff --git a/packages/cppjs-package-iconv/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-iconv/cppjs.build.js rename to cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/cppjs.build.js diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/cppjs.config.js new file mode 100644 index 00000000..4113a60a --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'iconv' + }, + export: { + type: 'cmake', + libName: [ + 'iconv', + 'charset' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/package.json new file mode 100644 index 00000000..d8e6e8ee --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-iconv-android-multithread", + "version": "1.0.0", + "nativeVersion": "1.18", + "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL", + "keywords": [ + "iconv", + "libiconv", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/README.md new file mode 100644 index 00000000..423e2c08 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-iconv +**Precompiled iconv library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-iconv +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import iconv from '@cpp.js/package-iconv/cppjs.config.js'; + +export default { + dependencies: [ ++ iconv + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the iconv in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(_LIBICONV_VERSION); +} +``` + +## License +This project includes the precompiled libiconv library, which is distributed under the [LGPL License](https://spdx.org/licenses/LGPL-2.1-or-later.html). + +iconv Homepage: [https://www.gnu.org/software/libiconv/](https://www.gnu.org/software/libiconv/) diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.build.js new file mode 100644 index 00000000..9136e5fb --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.config.js new file mode 100644 index 00000000..74747fc5 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'iconv' + }, + export: { + type: 'cmake', + libName: [ + 'iconv', + 'charset' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/package.json new file mode 100644 index 00000000..97126a23 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-iconv-android", + "version": "1.0.0", + "nativeVersion": "1.18", + "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL", + "keywords": [ + "iconv", + "libiconv", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/README.md new file mode 100644 index 00000000..423e2c08 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-iconv +**Precompiled iconv library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-iconv +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import iconv from '@cpp.js/package-iconv/cppjs.config.js'; + +export default { + dependencies: [ ++ iconv + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the iconv in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(_LIBICONV_VERSION); +} +``` + +## License +This project includes the precompiled libiconv library, which is distributed under the [LGPL License](https://spdx.org/licenses/LGPL-2.1-or-later.html). + +iconv Homepage: [https://www.gnu.org/software/libiconv/](https://www.gnu.org/software/libiconv/) diff --git a/packages/cppjs-package-iconv/cppjs-package-iconv.podspec b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs-package-iconv.podspec similarity index 100% rename from packages/cppjs-package-iconv/cppjs-package-iconv.podspec rename to cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs-package-iconv.podspec diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..9136e5fb --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..4113a60a --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'iconv' + }, + export: { + type: 'cmake', + libName: [ + 'iconv', + 'charset' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/package.json new file mode 100644 index 00000000..10130a1a --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-iconv-ios-multithread", + "version": "1.0.0", + "nativeVersion": "1.18", + "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL", + "keywords": [ + "iconv", + "libiconv", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/README.md new file mode 100644 index 00000000..423e2c08 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-iconv +**Precompiled iconv library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-iconv +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import iconv from '@cpp.js/package-iconv/cppjs.config.js'; + +export default { + dependencies: [ ++ iconv + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the iconv in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(_LIBICONV_VERSION); +} +``` + +## License +This project includes the precompiled libiconv library, which is distributed under the [LGPL License](https://spdx.org/licenses/LGPL-2.1-or-later.html). + +iconv Homepage: [https://www.gnu.org/software/libiconv/](https://www.gnu.org/software/libiconv/) diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs-package-iconv.podspec b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs-package-iconv.podspec new file mode 100644 index 00000000..61319c7c --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs-package-iconv.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "iconv" + s.name = "cppjs-package-iconv" + s.version = package["nativeVersion"] + s.summary = "Iconv can convert from any of these encodings to any other, through Unicode conversion." + s.homepage = "https://www.gnu.org/software/libiconv/" + s.author = "Iconv Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'iconv.xcframework', 'charset.xcframework' +end diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.build.js new file mode 100644 index 00000000..9136e5fb --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.config.js new file mode 100644 index 00000000..74747fc5 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'iconv' + }, + export: { + type: 'cmake', + libName: [ + 'iconv', + 'charset' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/packages/cppjs-package-iconv/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/package.json similarity index 84% rename from packages/cppjs-package-iconv/package.json rename to cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/package.json index 65bb54fa..20ff3f49 100644 --- a/packages/cppjs-package-iconv/package.json +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios/package.json @@ -1,28 +1,28 @@ { - "name": "@cpp.js/package-iconv", + "name": "@cpp.js/package-iconv-ios", "version": "1.0.0", "nativeVersion": "1.18", "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "LGPL", "type": "module", - "scripts": { - "build": "cppjs build", - "build:wasm": "cppjs build -p WebAssembly", - "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" - }, - "devDependencies": { - "cpp.js": "workspace:^" - }, + "license": "LGPL", "keywords": [ "iconv", "libiconv", "cpp.js-package", "webassembly", "react-native" - ] + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } } diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/README.md new file mode 100644 index 00000000..423e2c08 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-iconv +**Precompiled iconv library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-iconv +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import iconv from '@cpp.js/package-iconv/cppjs.config.js'; + +export default { + dependencies: [ ++ iconv + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the iconv in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(_LIBICONV_VERSION); +} +``` + +## License +This project includes the precompiled libiconv library, which is distributed under the [LGPL License](https://spdx.org/licenses/LGPL-2.1-or-later.html). + +iconv Homepage: [https://www.gnu.org/software/libiconv/](https://www.gnu.org/software/libiconv/) diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.build.js new file mode 100644 index 00000000..9136e5fb --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.config.js new file mode 100644 index 00000000..cac9ff15 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import iconvWasmMultithread from '@cpp.js/package-iconv-wasm-multithread/cppjs.config.js'; +import iconvAndroidMultithread from '@cpp.js/package-iconv-android-multithread/cppjs.config.js'; +import iconvIosMultithread from '@cpp.js/package-iconv-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + iconvWasmMultithread, + iconvAndroidMultithread, + iconvIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/package.json new file mode 100644 index 00000000..477f3d0e --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-iconv-multithread", + "version": "1.0.0", + "nativeVersion": "1.18", + "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL", + "keywords": [ + "iconv", + "libiconv", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-iconv-wasm-multithread": "workspace:^", + "@cpp.js/package-iconv-android-multithread": "workspace:^", + "@cpp.js/package-iconv-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/README.md new file mode 100644 index 00000000..423e2c08 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-iconv +**Precompiled iconv library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-iconv +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import iconv from '@cpp.js/package-iconv/cppjs.config.js'; + +export default { + dependencies: [ ++ iconv + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the iconv in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(_LIBICONV_VERSION); +} +``` + +## License +This project includes the precompiled libiconv library, which is distributed under the [LGPL License](https://spdx.org/licenses/LGPL-2.1-or-later.html). + +iconv Homepage: [https://www.gnu.org/software/libiconv/](https://www.gnu.org/software/libiconv/) diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..9136e5fb --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..fd306ffc --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/cppjs.config.js @@ -0,0 +1,27 @@ +export default { + general: { + name: 'iconv' + }, + export: { + type: 'cmake', + libName: [ + 'iconv', + 'charset' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Emscripten-x86_64': { + ignoreLibName: [ + 'charset' + ] + } + } +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/package.json new file mode 100644 index 00000000..9eb9426e --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-iconv-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "1.18", + "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL", + "keywords": [ + "iconv", + "libiconv", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/README.md new file mode 100644 index 00000000..423e2c08 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-iconv +**Precompiled iconv library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-iconv +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import iconv from '@cpp.js/package-iconv/cppjs.config.js'; + +export default { + dependencies: [ ++ iconv + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the iconv in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(_LIBICONV_VERSION); +} +``` + +## License +This project includes the precompiled libiconv library, which is distributed under the [LGPL License](https://spdx.org/licenses/LGPL-2.1-or-later.html). + +iconv Homepage: [https://www.gnu.org/software/libiconv/](https://www.gnu.org/software/libiconv/) diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.build.js new file mode 100644 index 00000000..9136e5fb --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.config.js new file mode 100644 index 00000000..e0eb787a --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/cppjs.config.js @@ -0,0 +1,24 @@ +export default { + general: { + name: 'iconv' + }, + export: { + type: 'cmake', + libName: [ + 'iconv', + 'charset' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Emscripten-x86_64': { + 'ignoreLibName': [ + 'charset' + ] + } + } +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/package.json new file mode 100644 index 00000000..f647234a --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-iconv-wasm", + "version": "1.0.0", + "nativeVersion": "1.18", + "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL", + "keywords": [ + "iconv", + "libiconv", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/.npmignore b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-iconv/CHANGELOG.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-iconv/CHANGELOG.md rename to cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/LICENSE b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/LICENSE new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/README.md b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/README.md new file mode 100644 index 00000000..423e2c08 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-iconv +**Precompiled iconv library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-iconv +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import iconv from '@cpp.js/package-iconv/cppjs.config.js'; + +export default { + dependencies: [ ++ iconv + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the iconv in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return to_string(_LIBICONV_VERSION); +} +``` + +## License +This project includes the precompiled libiconv library, which is distributed under the [LGPL License](https://spdx.org/licenses/LGPL-2.1-or-later.html). + +iconv Homepage: [https://www.gnu.org/software/libiconv/](https://www.gnu.org/software/libiconv/) diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs-package-iconv.podspec b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs-package-iconv.podspec new file mode 100644 index 00000000..61319c7c --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs-package-iconv.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "iconv" + s.name = "cppjs-package-iconv" + s.version = package["nativeVersion"] + s.summary = "Iconv can convert from any of these encodings to any other, through Unicode conversion." + s.homepage = "https://www.gnu.org/software/libiconv/" + s.author = "Iconv Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'iconv.xcframework', 'charset.xcframework' +end diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.build.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.build.js new file mode 100644 index 00000000..9136e5fb --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.config.js b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.config.js new file mode 100644 index 00000000..48c75f67 --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/cppjs.config.js @@ -0,0 +1,14 @@ +import iconvWasm from '@cpp.js/package-iconv-wasm/cppjs.config.js'; +import iconvAndroid from '@cpp.js/package-iconv-android/cppjs.config.js'; +import iconvIos from '@cpp.js/package-iconv-ios/cppjs.config.js'; + +export default { + dependencies: [ + iconvWasm, + iconvAndroid, + iconvIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/package.json b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/package.json new file mode 100644 index 00000000..9c165afc --- /dev/null +++ b/cppjs-packages/cppjs-package-iconv/cppjs-package-iconv/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-iconv", + "version": "1.0.0", + "nativeVersion": "1.18", + "description": "This package provides the precompiled iconv library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It provides a high-performance solution for converting between character encodings, ensuring cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-iconv#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "LGPL", + "keywords": [ + "iconv", + "libiconv", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-iconv-wasm": "workspace:^", + "@cpp.js/package-iconv-android": "workspace:^", + "@cpp.js/package-iconv-ios": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/assets/cacert.pem b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/assets/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/assets/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.build.js new file mode 100644 index 00000000..7c1f88b5 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.build.js @@ -0,0 +1,25 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'Android-arm64-v8a/ssl/certs/cacert.pem', + 'Android-x86_64/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.config.js new file mode 100644 index 00000000..436deb27 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/cppjs.config.js @@ -0,0 +1,34 @@ +export default { + general: { + name: 'openssl' + }, + export: { + type: 'cmake', + libName: [ + 'ssl', + 'crypto' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Android-arm64-v8a': { + libType: 'static', + data: { + 'ssl/certs': 'certs' + } + }, + 'Android-x86_64': { + libType: 'static', + data: { + 'ssl/certs': 'certs' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/package.json new file mode 100644 index 00000000..5f99a6bc --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-openssl-android-multithread", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/assets/cacert.pem b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/assets/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/assets/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.build.js new file mode 100644 index 00000000..7c1f88b5 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.build.js @@ -0,0 +1,25 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'Android-arm64-v8a/ssl/certs/cacert.pem', + 'Android-x86_64/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.config.js new file mode 100644 index 00000000..8b0c3f36 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/cppjs.config.js @@ -0,0 +1,31 @@ +export default { + general: { + name: 'openssl' + }, + export: { + type: 'cmake', + libName: [ + 'ssl', + 'crypto' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Android-arm64-v8a': { + 'libType': 'static', + data: { + 'ssl/certs': 'certs' + } + }, + 'Android-x86_64': { + 'libType': 'static', + data: { + 'ssl/certs': 'certs' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/package.json new file mode 100644 index 00000000..4ed7d63d --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-openssl-android", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/assets/cacert.pem b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/assets/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/assets/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJV +UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 +ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0xNzA4MjMxOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJV +UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 +ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALldUShLPDeS0YLOvR29 +zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0XznswuvCAAJWX/NKSqIk4cXGIDtiLK0thAf +LdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4Bq +stTnoApTAbqOl5F2brz81Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9o +WN0EACyW80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotPJqX+ +OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1lRtzuzWniTY+HKE40 +Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfwhI0Vcnyh78zyiGG69Gm7DIwLdVcE +uE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm ++9jaJXLE9gCxInm943xZYkqcBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqj +ifLJS3tBEW1ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1UdDwEB/wQEAwIB +BjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W0OhUKDtkLSGm+J1WE2pIPU/H +PinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfeuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0H +ZJDmHvUqoai7PF35owgLEQzxPy0QlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla +4gt5kNdXElE1GYhBaCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5R +vbbEsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPTMaCm/zjd +zyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qequ5AvzSxnI9O4fKSTx+O +856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxhVicGaeVyQYHTtgGJoC86cnn+OjC/QezH +Yj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu +3R3y4G5OBVixwJAWKqQ9EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs-package-openssl.podspec b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs-package-openssl.podspec new file mode 100644 index 00000000..85acea9a --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs-package-openssl.podspec @@ -0,0 +1,14 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "openssl" + s.name = "cppjs-package-openssl" + s.version = package["nativeVersion"] + s.summary = "TLS/SSL and crypto library" + s.homepage = "https://www.openssl.org/" + s.author = "OpenSSL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'ssl.xcframework', 'crypto.xcframework' + s.resources = ['dist/prebuilt/iOS-iphoneos/ssl/certs'] +end diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..c3c52628 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.build.js @@ -0,0 +1,25 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'iOS-iphoneos/ssl/certs/cacert.pem', + 'iOS-iphonesimulator/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..39a93e40 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/cppjs.config.js @@ -0,0 +1,32 @@ +export default { + general: { + name: 'openssl' + }, + export: { + type: 'cmake', + libName: [ + 'ssl', + 'crypto' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'iOS-iphoneos': { + data: { + 'ssl/certs': 'certs' + } + }, + 'iOS-iphonesimulator': { + data: { + 'ssl/certs': 'certs' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/package.json new file mode 100644 index 00000000..b99f2f99 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-openssl-ios-multithread", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/assets/cacert.pem b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/assets/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/assets/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs-package-openssl.podspec b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs-package-openssl.podspec new file mode 100644 index 00000000..85acea9a --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs-package-openssl.podspec @@ -0,0 +1,14 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "openssl" + s.name = "cppjs-package-openssl" + s.version = package["nativeVersion"] + s.summary = "TLS/SSL and crypto library" + s.homepage = "https://www.openssl.org/" + s.author = "OpenSSL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'ssl.xcframework', 'crypto.xcframework' + s.resources = ['dist/prebuilt/iOS-iphoneos/ssl/certs'] +end diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.build.js new file mode 100644 index 00000000..c3c52628 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.build.js @@ -0,0 +1,25 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'iOS-iphoneos/ssl/certs/cacert.pem', + 'iOS-iphonesimulator/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.config.js new file mode 100644 index 00000000..f69b09a6 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/cppjs.config.js @@ -0,0 +1,29 @@ +export default { + general: { + name: 'openssl' + }, + export: { + type: 'cmake', + libName: [ + 'ssl', + 'crypto' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'iOS-iphoneos': { + 'data': { + 'ssl/certs': 'certs' + } + }, + 'iOS-iphonesimulator': { + 'data': { + 'ssl/certs': 'certs' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/package.json new file mode 100644 index 00000000..4f212011 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-openssl-ios", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.build.js new file mode 100644 index 00000000..5e9120f9 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.build.js @@ -0,0 +1,28 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'Android-arm64-v8a/ssl/certs/cacert.pem', + 'Android-x86_64/ssl/certs/cacert.pem', + 'Emscripten-x86_64/ssl/certs/cacert.pem', + 'iOS-iphoneos/ssl/certs/cacert.pem', + 'iOS-iphonesimulator/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.config.js new file mode 100644 index 00000000..0d8fe12d --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import opensslWasmMultithread from '@cpp.js/package-openssl-wasm-multithread/cppjs.config.js'; +import opensslAndroidMultithread from '@cpp.js/package-openssl-android-multithread/cppjs.config.js'; +import opensslIosMultithread from '@cpp.js/package-openssl-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + opensslWasmMultithread, + opensslAndroidMultithread, + opensslIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/package.json new file mode 100644 index 00000000..4a537f0d --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread/package.json @@ -0,0 +1,26 @@ +{ + "name": "@cpp.js/package-openssl-multithread", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-openssl-wasm-multithread": "workspace:^", + "@cpp.js/package-openssl-android-multithread": "workspace:^", + "@cpp.js/package-openssl-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/assets/cacert.pem b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/assets/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/assets/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNVBAUTCUc2MzI4 +NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lv +bjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNVBAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3Qg +Q0EwHhcNMTkwOTA0MTAwMDM4WhcNMzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEw +MQswCQYDVQQGEwJFUzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQw +EgYDVQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9vdCBDQTCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCjcqQZAZ2cC4Ffc0m6p6zz +BE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9qyGFOtibBTI3/TO80sh9l2Ll49a2pcbnv +T1gdpd50IJeh7WhM3pIXS7yr/2WanvtH2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcv +B2VSAKduyK9o7PQUlrZXH1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXse +zx76W0OLzc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyRp1RM +VwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQzW7i1o0TJrH93PB0j +7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/SiOL9V8BY9KHcyi1Swr1+KuCLH5z +JTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJnLNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe +8TZBAQIvfXOn3kLMTOmJDVb3n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVO +Hj1tyRRM4y5Bu8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj +o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEATh65isagmD9uw2nAalxJ +UqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzx +j6ptBZNscsdW699QIyjlRRA96Gejrw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDt +dD+4E5UGUcjohybKpFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM +5gf0vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjqOknkJjCb +5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ/zo1PqVUSlJZS2Db7v54 +EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ92zg/LFis6ELhDtjTO0wugumDLmsx2d1H +hk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGy +g77FGr8H6lnco4g175x2MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3 +r5+qPeoott7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw= +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6MQswCQYDVQQG +EwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0g +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0Ew +HhcNMTgwMzE2MTIxMDEzWhcNNDMwMzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMY +QXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZn0EGze2jusDbCSzBfN8p +fktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/qp1x4EaTByIVcJdPTsuclzxFUl6s1wB52 +HO8AU5853BSlLCIls3Jy/I2z5T4IHhQqNwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2 +fJmItdUDmj0VDT06qKhF8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGt +g/BKEiJ3HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGamqi4 +NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi7VdNIuJGmj8PkTQk +fVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSFytKAQd8FqKPVhJBPC/PgP5sZ0jeJ +P/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0PqafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSY +njYJdmZm/Bo/6khUHL4wvYBQv3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHK +HRzQ+8S1h9E6Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1 +vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBAEii1QAL +LtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4WxmB82M+w85bj/UvXgF2Ez8s +ALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvozMrnadyHncI013nR03e4qllY/p0m+jiGPp2K +h2RX5Rc64vmNueMzeMGQ2Ljdt4NR5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8 +CYyqOhNf6DR5UMEQGfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA +4kZf5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq0Uc9Nneo +WWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7DP78v3DSk+yshzWePS/Tj +6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTMqJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmT +OPQD8rv7gmsHINFSH5pkAnuYZttcTVoP0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZck +bxJF0WddCajJFdr60qZfE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..2be6577b --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.build.js @@ -0,0 +1,24 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'Emscripten-x86_64/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..7146bc84 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'openssl' + }, + export: { + type: 'cmake', + libName: [ + 'ssl', + 'crypto' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/package.json new file mode 100644 index 00000000..a371be17 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-openssl-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/assets/cacert.pem b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/assets/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/assets/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.build.js new file mode 100644 index 00000000..2be6577b --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.build.js @@ -0,0 +1,24 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'Emscripten-x86_64/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.config.js new file mode 100644 index 00000000..db6b1aaa --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'openssl' + }, + export: { + type: 'cmake', + libName: [ + 'ssl', + 'crypto' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/package.json new file mode 100644 index 00000000..3fbf55f7 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-openssl-wasm", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/CHANGELOG.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/CHANGELOG.md new file mode 100644 index 00000000..ca80f729 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-openssl + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/LICENSE b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/LICENSE new file mode 100644 index 00000000..49cc83d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/README.md b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/README.md new file mode 100644 index 00000000..7ff55b89 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-openssl +**Precompiled OpenSSL library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-openssl +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import openssl from '@cpp.js/package-openssl/cppjs.config.js'; + +export default { + dependencies: [ ++ openssl + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the OpenSSL in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(OPENSSL_FULL_VERSION_STR); +} +``` + +## License +This project includes the precompiled OpenSSL library, which is distributed under the [Apache License 2.0 License](https://github.com/openssl/openssl/blob/master/LICENSE.txt). + +OpenSSL Homepage: [https://openssl.se/](https://openssl.se/) diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/assets/cacert.pem b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/assets/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/assets/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs-package-openssl.podspec b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs-package-openssl.podspec new file mode 100644 index 00000000..85acea9a --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs-package-openssl.podspec @@ -0,0 +1,14 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "openssl" + s.name = "cppjs-package-openssl" + s.version = package["nativeVersion"] + s.summary = "TLS/SSL and crypto library" + s.homepage = "https://www.openssl.org/" + s.author = "OpenSSL Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'ssl.xcframework', 'crypto.xcframework' + s.resources = ['dist/prebuilt/iOS-iphoneos/ssl/certs'] +end diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.build.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.build.js new file mode 100644 index 00000000..5e9120f9 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.build.js @@ -0,0 +1,28 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-arm64-v8a': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'Android-x86_64': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphoneos': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], + 'iOS-iphonesimulator': ['--cross-compile-prefix=', 'cc', 'no-apps', 'no-docs', 'no-tests', 'no-shared', 'threads'], +}; + +export default { + getURL: (version) => `https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-fPIC"', + 'CXXFLAGS="-fPIC"', + ], + copyToDist: { + 'assets/cacert.pem': [ + 'Android-arm64-v8a/ssl/certs/cacert.pem', + 'Android-x86_64/ssl/certs/cacert.pem', + 'Emscripten-x86_64/ssl/certs/cacert.pem', + 'iOS-iphoneos/ssl/certs/cacert.pem', + 'iOS-iphonesimulator/ssl/certs/cacert.pem', + ] + }, +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.config.js b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.config.js new file mode 100644 index 00000000..a42ef036 --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/cppjs.config.js @@ -0,0 +1,14 @@ +import opensslWasm from '@cpp.js/package-openssl-wasm/cppjs.config.js'; +import opensslAndroid from '@cpp.js/package-openssl-android/cppjs.config.js'; +import opensslIos from '@cpp.js/package-openssl-ios/cppjs.config.js'; + +export default { + dependencies: [ + opensslWasm, + opensslAndroid, + opensslIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/package.json b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/package.json new file mode 100644 index 00000000..f6edbbcb --- /dev/null +++ b/cppjs-packages/cppjs-package-openssl/cppjs-package-openssl/package.json @@ -0,0 +1,26 @@ +{ + "name": "@cpp.js/package-openssl", + "version": "1.0.0", + "nativeVersion": "3.5.0", + "description": "This package provides a OpenSSL library compiled with Cpp.js, enabling seamless usage of OpenSSL functionalities in JavaScript, WebAssembly and React Native projects. It supports cryptography and secure communication for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-openssl#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "Apache-2.0", + "keywords": [ + "openssl", + "ssl", + "libssl", + "crypto", + "libcrypto", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-openssl-wasm": "workspace:^", + "@cpp.js/package-openssl-android": "workspace:^", + "@cpp.js/package-openssl-ios": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-proj/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-proj/LICENSE rename to cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/LICENSE diff --git a/packages/cppjs-package-proj/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-proj/README.md rename to cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/README.md diff --git a/packages/cppjs-package-proj/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-proj/cppjs.build.js rename to cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/cppjs.build.js diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/cppjs.config.js new file mode 100644 index 00000000..97e8f174 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/cppjs.config.js @@ -0,0 +1,33 @@ +import tiffAndroidMultithread from '@cpp.js/package-tiff-android-multithread/cppjs.config.js'; +import sqlite3AndroidMultithread from '@cpp.js/package-sqlite3-android-multithread/cppjs.config.js'; + +export default { + dependencies: [ + tiffAndroidMultithread, + sqlite3AndroidMultithread, + ], + general: { + name: 'proj' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Android-arm64-v8a': { + data: { + 'share/proj': 'proj' + }, + env: { + PROJ_LIB: '_CPPJS_DATA_PATH_/proj' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/package.json new file mode 100644 index 00000000..b8cf93c1 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread/package.json @@ -0,0 +1,32 @@ +{ + "name": "@cpp.js/package-proj-android-multithread", + "version": "1.0.0", + "nativeVersion": "9.6.0", + "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-tiff-android-multithread": "workspace:^", + "@cpp.js/package-sqlite3-android-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/LICENSE new file mode 100644 index 00000000..25f53c72 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/LICENSE @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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. diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/README.md new file mode 100644 index 00000000..e65808a7 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-proj +**Precompiled proj library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-proj +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import proj from '@cpp.js/package-proj/cppjs.config.js'; + +export default { + dependencies: [ ++ proj + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the proj in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +double Native::sample() { ++ return proj_torad(15.6); +} +``` + +## License +This project includes the precompiled proj library, which is distributed under the [MIT License](https://github.com/OSGeo/PROJ/blob/master/COPYING). + +Proj Homepage: [https://proj.org/](https://proj.org/) diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.build.js new file mode 100644 index 00000000..37ea6f29 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.build.js @@ -0,0 +1,11 @@ +export default { + getURL: (version) => `https://download.osgeo.org/proj/proj-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + '-DENABLE_CURL=OFF', '-DBUILD_TESTING=OFF', '-DBUILD_APPS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, + `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, + `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + ], +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.config.js new file mode 100644 index 00000000..c20e9bbd --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/cppjs.config.js @@ -0,0 +1,30 @@ +import tiffAndroid from '@cpp.js/package-tiff-android/cppjs.config.js'; +import sqlite3Android from '@cpp.js/package-sqlite3-android/cppjs.config.js'; + +export default { + dependencies: [ + tiffAndroid, + sqlite3Android, + ], + general: { + name: 'proj' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Android-arm64-v8a': { + 'data': { + 'share/proj': 'proj' + }, + env: { + PROJ_LIB: '_CPPJS_DATA_PATH_/proj' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/package.json new file mode 100644 index 00000000..92d0caf0 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-android/package.json @@ -0,0 +1,32 @@ +{ + "name": "@cpp.js/package-proj-android", + "version": "1.0.0", + "nativeVersion": "9.6.0", + "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-tiff-android": "workspace:^", + "@cpp.js/package-sqlite3-android": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/LICENSE new file mode 100644 index 00000000..25f53c72 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/LICENSE @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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. diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/README.md new file mode 100644 index 00000000..e65808a7 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-proj +**Precompiled proj library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-proj +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import proj from '@cpp.js/package-proj/cppjs.config.js'; + +export default { + dependencies: [ ++ proj + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the proj in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +double Native::sample() { ++ return proj_torad(15.6); +} +``` + +## License +This project includes the precompiled proj library, which is distributed under the [MIT License](https://github.com/OSGeo/PROJ/blob/master/COPYING). + +Proj Homepage: [https://proj.org/](https://proj.org/) diff --git a/packages/cppjs-package-proj/cppjs-package-proj.podspec b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs-package-proj.podspec similarity index 100% rename from packages/cppjs-package-proj/cppjs-package-proj.podspec rename to cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs-package-proj.podspec diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..37ea6f29 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.build.js @@ -0,0 +1,11 @@ +export default { + getURL: (version) => `https://download.osgeo.org/proj/proj-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + '-DENABLE_CURL=OFF', '-DBUILD_TESTING=OFF', '-DBUILD_APPS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, + `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, + `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + ], +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..a70e1b3f --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/cppjs.config.js @@ -0,0 +1,33 @@ +import tiffIosMultithread from '@cpp.js/package-tiff-ios-multithread/cppjs.config.js'; +import sqlite3IosMultithread from '@cpp.js/package-sqlite3-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + tiffIosMultithread, + sqlite3IosMultithread, + ], + general: { + name: 'proj' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'iOS-iphoneos': { + data: { + 'share/proj': 'proj' + }, + env: { + PROJ_LIB: '_CPPJS_DATA_PATH_/proj' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/package.json new file mode 100644 index 00000000..d80c1904 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread/package.json @@ -0,0 +1,32 @@ +{ + "name": "@cpp.js/package-proj-ios-multithread", + "version": "1.0.0", + "nativeVersion": "9.6.0", + "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-tiff-ios-multithread": "workspace:^", + "@cpp.js/package-sqlite3-ios-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/LICENSE new file mode 100644 index 00000000..25f53c72 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/LICENSE @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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. diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/README.md new file mode 100644 index 00000000..e65808a7 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-proj +**Precompiled proj library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-proj +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import proj from '@cpp.js/package-proj/cppjs.config.js'; + +export default { + dependencies: [ ++ proj + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the proj in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +double Native::sample() { ++ return proj_torad(15.6); +} +``` + +## License +This project includes the precompiled proj library, which is distributed under the [MIT License](https://github.com/OSGeo/PROJ/blob/master/COPYING). + +Proj Homepage: [https://proj.org/](https://proj.org/) diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs-package-proj.podspec b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs-package-proj.podspec new file mode 100644 index 00000000..c5ddc6b4 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs-package-proj.podspec @@ -0,0 +1,14 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "proj" + s.name = "cppjs-package-proj" + s.version = package["nativeVersion"] + s.summary = "PROJ is a generic coordinate transformation software that transforms geospatial coordinates from one coordinate reference system (CRS) to another." + s.homepage = "https://proj.org/" + s.author = "Proj Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'proj.xcframework', 'sqlite3.xcframework', 'tiff.xcframework' + s.resources = ['dist/prebuilt/iOS-iphoneos/share/proj'] +end diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.build.js new file mode 100644 index 00000000..37ea6f29 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.build.js @@ -0,0 +1,11 @@ +export default { + getURL: (version) => `https://download.osgeo.org/proj/proj-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + '-DENABLE_CURL=OFF', '-DBUILD_TESTING=OFF', '-DBUILD_APPS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, + `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, + `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + ], +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.config.js new file mode 100644 index 00000000..3f79342c --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/cppjs.config.js @@ -0,0 +1,30 @@ +import tiffIos from '@cpp.js/package-tiff-ios/cppjs.config.js'; +import sqlite3Ios from '@cpp.js/package-sqlite3-ios/cppjs.config.js'; + +export default { + dependencies: [ + tiffIos, + sqlite3Ios, + ], + general: { + name: 'proj' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'iOS-iphoneos': { + 'data': { + 'share/proj': 'proj' + }, + env: { + PROJ_LIB: '_CPPJS_DATA_PATH_/proj' + } + } + } +}; diff --git a/packages/cppjs-package-proj/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/package.json similarity index 78% rename from packages/cppjs-package-proj/package.json rename to cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/package.json index 9e10e206..633eb9d5 100644 --- a/packages/cppjs-package-proj/package.json +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios/package.json @@ -1,32 +1,32 @@ { - "name": "@cpp.js/package-proj", + "name": "@cpp.js/package-proj-ios", "version": "1.0.0", "nativeVersion": "9.6.0", "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "MIT", "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], "scripts": { - "build": "cppjs build", + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", "build:wasm": "cppjs build -p WebAssembly", "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" + "build:ios": "cppjs build -p iOS" }, "dependencies": { - "@cpp.js/package-tiff": "workspace:^", - "@cpp.js/package-sqlite3": "workspace:^" + "@cpp.js/package-tiff-ios": "workspace:^", + "@cpp.js/package-sqlite3-ios": "workspace:^" }, "devDependencies": { "cpp.js": "workspace:^" - }, - "keywords": [ - "proj", - "libproj", - "cpp.js-package", - "webassembly", - "react-native" - ] + } } diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/LICENSE new file mode 100644 index 00000000..25f53c72 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/LICENSE @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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. diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/README.md new file mode 100644 index 00000000..e65808a7 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-proj +**Precompiled proj library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-proj +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import proj from '@cpp.js/package-proj/cppjs.config.js'; + +export default { + dependencies: [ ++ proj + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the proj in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +double Native::sample() { ++ return proj_torad(15.6); +} +``` + +## License +This project includes the precompiled proj library, which is distributed under the [MIT License](https://github.com/OSGeo/PROJ/blob/master/COPYING). + +Proj Homepage: [https://proj.org/](https://proj.org/) diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.build.js new file mode 100644 index 00000000..37ea6f29 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.build.js @@ -0,0 +1,11 @@ +export default { + getURL: (version) => `https://download.osgeo.org/proj/proj-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + '-DENABLE_CURL=OFF', '-DBUILD_TESTING=OFF', '-DBUILD_APPS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, + `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, + `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + ], +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.config.js new file mode 100644 index 00000000..e9ceae42 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import projWasmMultithread from '@cpp.js/package-proj-wasm-multithread/cppjs.config.js'; +import projAndroidMultithread from '@cpp.js/package-proj-android-multithread/cppjs.config.js'; +import projIosMultithread from '@cpp.js/package-proj-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + projWasmMultithread, + projAndroidMultithread, + projIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/package.json new file mode 100644 index 00000000..555c3932 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-proj-multithread", + "version": "1.0.0", + "nativeVersion": "9.6.0", + "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-proj-wasm-multithread": "workspace:^", + "@cpp.js/package-proj-android-multithread": "workspace:^", + "@cpp.js/package-proj-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/LICENSE new file mode 100644 index 00000000..25f53c72 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/LICENSE @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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. diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/README.md new file mode 100644 index 00000000..e65808a7 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-proj +**Precompiled proj library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-proj +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import proj from '@cpp.js/package-proj/cppjs.config.js'; + +export default { + dependencies: [ ++ proj + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the proj in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +double Native::sample() { ++ return proj_torad(15.6); +} +``` + +## License +This project includes the precompiled proj library, which is distributed under the [MIT License](https://github.com/OSGeo/PROJ/blob/master/COPYING). + +Proj Homepage: [https://proj.org/](https://proj.org/) diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..37ea6f29 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.build.js @@ -0,0 +1,11 @@ +export default { + getURL: (version) => `https://download.osgeo.org/proj/proj-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + '-DENABLE_CURL=OFF', '-DBUILD_TESTING=OFF', '-DBUILD_APPS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, + `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, + `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + ], +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..eb9cbdc5 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/cppjs.config.js @@ -0,0 +1,41 @@ +import tiffWasmMultithread from '@cpp.js/package-tiff-wasm-multithread/cppjs.config.js'; +import sqlite3WasmMultithread from '@cpp.js/package-sqlite3-wasm-multithread/cppjs.config.js'; + +export default { + dependencies: [ + tiffWasmMultithread, + sqlite3WasmMultithread, + ], + general: { + name: 'proj' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + }, + platform: { + 'Emscripten-x86_64-browser': { + data: { + 'share/proj': '/usr/share/proj' + }, + env: { + PROJ_LIB: '/usr/share/proj' + } + }, + 'Emscripten-x86_64-node': { + data: { + 'share/proj': 'proj' + }, + env: { + PROJ_LIB: '_CPPJS_DATA_PATH_/proj' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/package.json new file mode 100644 index 00000000..705a5c7f --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread/package.json @@ -0,0 +1,32 @@ +{ + "name": "@cpp.js/package-proj-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "9.6.0", + "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-tiff-wasm-multithread": "workspace:^", + "@cpp.js/package-sqlite3-wasm-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/LICENSE new file mode 100644 index 00000000..25f53c72 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/LICENSE @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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. diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/README.md new file mode 100644 index 00000000..e65808a7 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-proj +**Precompiled proj library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-proj +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import proj from '@cpp.js/package-proj/cppjs.config.js'; + +export default { + dependencies: [ ++ proj + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the proj in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +double Native::sample() { ++ return proj_torad(15.6); +} +``` + +## License +This project includes the precompiled proj library, which is distributed under the [MIT License](https://github.com/OSGeo/PROJ/blob/master/COPYING). + +Proj Homepage: [https://proj.org/](https://proj.org/) diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.build.js new file mode 100644 index 00000000..37ea6f29 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.build.js @@ -0,0 +1,11 @@ +export default { + getURL: (version) => `https://download.osgeo.org/proj/proj-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + '-DENABLE_CURL=OFF', '-DBUILD_TESTING=OFF', '-DBUILD_APPS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, + `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, + `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + ], +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.config.js new file mode 100644 index 00000000..9a1de04b --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/cppjs.config.js @@ -0,0 +1,38 @@ +import tiffWasm from '@cpp.js/package-tiff-wasm/cppjs.config.js'; +import sqlite3Wasm from '@cpp.js/package-sqlite3-wasm/cppjs.config.js'; + +export default { + dependencies: [ + tiffWasm, + sqlite3Wasm, + ], + general: { + name: 'proj' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + platform: { + 'Emscripten-x86_64-browser': { + 'data': { + 'share/proj': '/usr/share/proj' + }, + env: { + PROJ_LIB: '/usr/share/proj' + } + }, + 'Emscripten-x86_64-node': { + 'data': { + 'share/proj': 'proj' + }, + env: { + PROJ_LIB: '_CPPJS_DATA_PATH_/proj' + } + } + } +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/package.json new file mode 100644 index 00000000..d58c5540 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm/package.json @@ -0,0 +1,32 @@ +{ + "name": "@cpp.js/package-proj-wasm", + "version": "1.0.0", + "nativeVersion": "9.6.0", + "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-tiff-wasm": "workspace:^", + "@cpp.js/package-sqlite3-wasm": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj/.npmignore b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-proj/CHANGELOG.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-proj/CHANGELOG.md rename to cppjs-packages/cppjs-package-proj/cppjs-package-proj/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj/LICENSE b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/LICENSE new file mode 100644 index 00000000..25f53c72 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/LICENSE @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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. diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj/README.md b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/README.md new file mode 100644 index 00000000..e65808a7 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-proj +**Precompiled proj library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-proj +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import proj from '@cpp.js/package-proj/cppjs.config.js'; + +export default { + dependencies: [ ++ proj + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the proj in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +double Native::sample() { ++ return proj_torad(15.6); +} +``` + +## License +This project includes the precompiled proj library, which is distributed under the [MIT License](https://github.com/OSGeo/PROJ/blob/master/COPYING). + +Proj Homepage: [https://proj.org/](https://proj.org/) diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs-package-proj.podspec b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs-package-proj.podspec new file mode 100644 index 00000000..c5ddc6b4 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs-package-proj.podspec @@ -0,0 +1,14 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "proj" + s.name = "cppjs-package-proj" + s.version = package["nativeVersion"] + s.summary = "PROJ is a generic coordinate transformation software that transforms geospatial coordinates from one coordinate reference system (CRS) to another." + s.homepage = "https://proj.org/" + s.author = "Proj Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'proj.xcframework', 'sqlite3.xcframework', 'tiff.xcframework' + s.resources = ['dist/prebuilt/iOS-iphoneos/share/proj'] +end diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.build.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.build.js new file mode 100644 index 00000000..37ea6f29 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.build.js @@ -0,0 +1,11 @@ +export default { + getURL: (version) => `https://download.osgeo.org/proj/proj-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: (platform, depPaths) => [ + '-DENABLE_CURL=OFF', '-DBUILD_TESTING=OFF', '-DBUILD_APPS=OFF', + `-DSQLite3_INCLUDE_DIR=${depPaths.sqlite3.header}`, + `-DSQLite3_LIBRARY=${depPaths.sqlite3.lib}`, + `-DTIFF_INCLUDE_DIR=${depPaths.tiff.header}`, + `-DTIFF_LIBRARY_RELEASE=${depPaths.tiff.lib}`, + ], +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.config.js b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.config.js new file mode 100644 index 00000000..2365428b --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/cppjs.config.js @@ -0,0 +1,14 @@ +import projWasm from '@cpp.js/package-proj-wasm/cppjs.config.js'; +import projAndroid from '@cpp.js/package-proj-android/cppjs.config.js'; +import projIos from '@cpp.js/package-proj-ios/cppjs.config.js'; + +export default { + dependencies: [ + projWasm, + projAndroid, + projIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-proj/cppjs-package-proj/package.json b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/package.json new file mode 100644 index 00000000..421aa581 --- /dev/null +++ b/cppjs-packages/cppjs-package-proj/cppjs-package-proj/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-proj", + "version": "1.0.0", + "nativeVersion": "9.6.0", + "description": "This package provides the precompiled proj library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It allows users to perform geodetic computations such as projections and coordinate transformations, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-proj#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MIT", + "keywords": [ + "proj", + "libproj", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-proj-wasm": "workspace:^", + "@cpp.js/package-proj-android": "workspace:^", + "@cpp.js/package-proj-ios": "workspace:^" + } +} diff --git a/packages/cppjs-package-spatialite/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/.npmignore similarity index 100% rename from packages/cppjs-package-spatialite/.npmignore rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/.npmignore diff --git a/packages/cppjs-package-spatialite/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-spatialite/LICENSE rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/LICENSE diff --git a/packages/cppjs-package-spatialite/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-spatialite/README.md rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/README.md diff --git a/packages/cppjs-package-spatialite/config.sub b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/config.sub similarity index 100% rename from packages/cppjs-package-spatialite/config.sub rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/config.sub diff --git a/packages/cppjs-package-spatialite/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-spatialite/cppjs.build.js rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/cppjs.build.js diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/cppjs.config.js new file mode 100644 index 00000000..9b8962c2 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/cppjs.config.js @@ -0,0 +1,29 @@ +import geosAndroidMultithread from '@cpp.js/package-geos-android-multithread/cppjs.config.js'; +import projAndroidMultithread from '@cpp.js/package-proj-android-multithread/cppjs.config.js'; +import sqlite3AndroidMultithread from '@cpp.js/package-sqlite3-android-multithread/cppjs.config.js'; +import zlibAndroidMultithread from '@cpp.js/package-zlib-android-multithread/cppjs.config.js'; +import iconvAndroidMultithread from '@cpp.js/package-iconv-android-multithread/cppjs.config.js'; + +export default { + dependencies: [ + geosAndroidMultithread, + projAndroidMultithread, + sqlite3AndroidMultithread, + zlibAndroidMultithread, + iconvAndroidMultithread, + ], + general: { + name: 'spatialite' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/package.json new file mode 100644 index 00000000..7092bdaf --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread/package.json @@ -0,0 +1,35 @@ +{ + "name": "@cpp.js/package-spatialite-android-multithread", + "version": "1.0.0", + "nativeVersion": "5.1.0", + "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-geos-android-multithread": "workspace:^", + "@cpp.js/package-proj-android-multithread": "workspace:^", + "@cpp.js/package-sqlite3-android-multithread": "workspace:^", + "@cpp.js/package-zlib-android-multithread": "workspace:^", + "@cpp.js/package-iconv-android-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/.npmignore new file mode 100644 index 00000000..683cc547 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/.npmignore @@ -0,0 +1,9 @@ +dist/prebuilt/iOS-iphoneos +dist/prebuilt/iOS-iphonesimulator +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/LICENSE new file mode 100644 index 00000000..0bbcc806 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/LICENSE @@ -0,0 +1,35 @@ + diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/README.md new file mode 100644 index 00000000..423861a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-spatialite +**Precompiled spatialite library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-spatialite +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; + +export default { + dependencies: [ ++ spatialite + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the spatialite in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(spatialite_version()); +} +``` + +## License +This project includes the precompiled spatialite library, which is distributed under the [MPL tri-license](https://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/boilerplate-1.1/mpl-tri-license-html). + +Spatialite Homepage: [https://www.gaia-gis.it/fossil/libspatialite/index](https://www.gaia-gis.it/fossil/libspatialite/index) diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/config.sub b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/config.sub new file mode 100755 index 00000000..38f3d037 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.build.js new file mode 100644 index 00000000..4ae57ea5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.build.js @@ -0,0 +1,50 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'Android-x86_64': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphoneos': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphonesimulator': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], +}; + +const platformSourceReplaceList = { + 'Android-arm64-v8a': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], + 'Android-x86_64': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], +}; + +export default { + getURL: (version) => `https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${version}.tar.gz`, + copyToSource: { 'config.sub': 'config.sub' }, + sourceReplaceList: (platform) => [ + ...(platformSourceReplaceList[platform] || []), + ], + buildType: 'configure', // cmake, configure + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + '--enable-geosadvanced=yes', '--enable-geopackage=yes', '--enable-examples=no', '--enable-minizip=no', + '--enable-libxml2=no', '--enable-freexl=no', '--disable-rttopo', '--disable-gcp', + `--with-geosconfig=${depPaths.geos.bin}/geos-config`, + `SQLITE3_CFLAGS=-I${depPaths.sqlite3.header}`, + `SQLITE3_LIBS=-L${depPaths.sqlite3.libPath}`, + ], + getExtraLibs: (platform) => platformLibs[platform] || [], +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.config.js new file mode 100644 index 00000000..4886b254 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/cppjs.config.js @@ -0,0 +1,26 @@ +import geosAndroid from '@cpp.js/package-geos-android/cppjs.config.js'; +import projAndroid from '@cpp.js/package-proj-android/cppjs.config.js'; +import sqlite3Android from '@cpp.js/package-sqlite3-android/cppjs.config.js'; +import zlibAndroid from '@cpp.js/package-zlib-android/cppjs.config.js'; +import iconvAndroid from '@cpp.js/package-iconv-android/cppjs.config.js'; + +export default { + dependencies: [ + geosAndroid, + projAndroid, + sqlite3Android, + zlibAndroid, + iconvAndroid, + ], + general: { + name: 'spatialite' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/package.json new file mode 100644 index 00000000..c6d8af1e --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android/package.json @@ -0,0 +1,35 @@ +{ + "name": "@cpp.js/package-spatialite-android", + "version": "1.0.0", + "nativeVersion": "5.1.0", + "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-geos-android": "workspace:^", + "@cpp.js/package-proj-android": "workspace:^", + "@cpp.js/package-sqlite3-android": "workspace:^", + "@cpp.js/package-zlib-android": "workspace:^", + "@cpp.js/package-iconv-android": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/.npmignore new file mode 100644 index 00000000..683cc547 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/.npmignore @@ -0,0 +1,9 @@ +dist/prebuilt/iOS-iphoneos +dist/prebuilt/iOS-iphonesimulator +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/LICENSE new file mode 100644 index 00000000..0bbcc806 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/LICENSE @@ -0,0 +1,35 @@ + diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/README.md new file mode 100644 index 00000000..423861a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-spatialite +**Precompiled spatialite library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-spatialite +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; + +export default { + dependencies: [ ++ spatialite + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the spatialite in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(spatialite_version()); +} +``` + +## License +This project includes the precompiled spatialite library, which is distributed under the [MPL tri-license](https://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/boilerplate-1.1/mpl-tri-license-html). + +Spatialite Homepage: [https://www.gaia-gis.it/fossil/libspatialite/index](https://www.gaia-gis.it/fossil/libspatialite/index) diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/config.sub b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/config.sub new file mode 100755 index 00000000..38f3d037 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/packages/cppjs-package-spatialite/cppjs-package-spatialite.podspec b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs-package-spatialite.podspec similarity index 100% rename from packages/cppjs-package-spatialite/cppjs-package-spatialite.podspec rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs-package-spatialite.podspec diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..4ae57ea5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.build.js @@ -0,0 +1,50 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'Android-x86_64': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphoneos': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphonesimulator': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], +}; + +const platformSourceReplaceList = { + 'Android-arm64-v8a': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], + 'Android-x86_64': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], +}; + +export default { + getURL: (version) => `https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${version}.tar.gz`, + copyToSource: { 'config.sub': 'config.sub' }, + sourceReplaceList: (platform) => [ + ...(platformSourceReplaceList[platform] || []), + ], + buildType: 'configure', // cmake, configure + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + '--enable-geosadvanced=yes', '--enable-geopackage=yes', '--enable-examples=no', '--enable-minizip=no', + '--enable-libxml2=no', '--enable-freexl=no', '--disable-rttopo', '--disable-gcp', + `--with-geosconfig=${depPaths.geos.bin}/geos-config`, + `SQLITE3_CFLAGS=-I${depPaths.sqlite3.header}`, + `SQLITE3_LIBS=-L${depPaths.sqlite3.libPath}`, + ], + getExtraLibs: (platform) => platformLibs[platform] || [], +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..05bb93cf --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/cppjs.config.js @@ -0,0 +1,29 @@ +import geosIosMultithread from '@cpp.js/package-geos-ios-multithread/cppjs.config.js'; +import projIosMultithread from '@cpp.js/package-proj-ios-multithread/cppjs.config.js'; +import sqlite3IosMultithread from '@cpp.js/package-sqlite3-ios-multithread/cppjs.config.js'; +import zlibIosMultithread from '@cpp.js/package-zlib-ios-multithread/cppjs.config.js'; +import iconvIosMultithread from '@cpp.js/package-iconv-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + geosIosMultithread, + projIosMultithread, + sqlite3IosMultithread, + zlibIosMultithread, + iconvIosMultithread, + ], + general: { + name: 'spatialite' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/package.json new file mode 100644 index 00000000..aec7f357 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread/package.json @@ -0,0 +1,35 @@ +{ + "name": "@cpp.js/package-spatialite-ios-multithread", + "version": "1.0.0", + "nativeVersion": "5.1.0", + "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-geos-ios-multithread": "workspace:^", + "@cpp.js/package-proj-ios-multithread": "workspace:^", + "@cpp.js/package-sqlite3-ios-multithread": "workspace:^", + "@cpp.js/package-zlib-ios-multithread": "workspace:^", + "@cpp.js/package-iconv-ios-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/.npmignore new file mode 100644 index 00000000..683cc547 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/.npmignore @@ -0,0 +1,9 @@ +dist/prebuilt/iOS-iphoneos +dist/prebuilt/iOS-iphonesimulator +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/LICENSE new file mode 100644 index 00000000..0bbcc806 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/LICENSE @@ -0,0 +1,35 @@ + diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/README.md new file mode 100644 index 00000000..423861a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-spatialite +**Precompiled spatialite library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-spatialite +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; + +export default { + dependencies: [ ++ spatialite + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the spatialite in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(spatialite_version()); +} +``` + +## License +This project includes the precompiled spatialite library, which is distributed under the [MPL tri-license](https://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/boilerplate-1.1/mpl-tri-license-html). + +Spatialite Homepage: [https://www.gaia-gis.it/fossil/libspatialite/index](https://www.gaia-gis.it/fossil/libspatialite/index) diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/config.sub b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/config.sub new file mode 100755 index 00000000..38f3d037 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs-package-spatialite.podspec b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs-package-spatialite.podspec new file mode 100644 index 00000000..eb3eee22 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs-package-spatialite.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "spatialite" + s.name = "cppjs-package-spatialite" + s.version = package["nativeVersion"] + s.summary = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." + s.homepage = "https://www.gaia-gis.it/fossil/libspatialite/index" + s.author = "Spatialite Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'spatialite.xcframework', 'geos.xcframework', 'iconv.xcframework', 'proj.xcframework', 'sqlite3.xcframework', 'z.xcframework' +end diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.build.js new file mode 100644 index 00000000..4ae57ea5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.build.js @@ -0,0 +1,50 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'Android-x86_64': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphoneos': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphonesimulator': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], +}; + +const platformSourceReplaceList = { + 'Android-arm64-v8a': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], + 'Android-x86_64': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], +}; + +export default { + getURL: (version) => `https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${version}.tar.gz`, + copyToSource: { 'config.sub': 'config.sub' }, + sourceReplaceList: (platform) => [ + ...(platformSourceReplaceList[platform] || []), + ], + buildType: 'configure', // cmake, configure + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + '--enable-geosadvanced=yes', '--enable-geopackage=yes', '--enable-examples=no', '--enable-minizip=no', + '--enable-libxml2=no', '--enable-freexl=no', '--disable-rttopo', '--disable-gcp', + `--with-geosconfig=${depPaths.geos.bin}/geos-config`, + `SQLITE3_CFLAGS=-I${depPaths.sqlite3.header}`, + `SQLITE3_LIBS=-L${depPaths.sqlite3.libPath}`, + ], + getExtraLibs: (platform) => platformLibs[platform] || [], +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.config.js new file mode 100644 index 00000000..467b2997 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/cppjs.config.js @@ -0,0 +1,26 @@ +import geosIos from '@cpp.js/package-geos-ios/cppjs.config.js'; +import projIos from '@cpp.js/package-proj-ios/cppjs.config.js'; +import sqlite3Ios from '@cpp.js/package-sqlite3-ios/cppjs.config.js'; +import zlibIos from '@cpp.js/package-zlib-ios/cppjs.config.js'; +import iconvIos from '@cpp.js/package-iconv-ios/cppjs.config.js'; + +export default { + dependencies: [ + geosIos, + projIos, + sqlite3Ios, + zlibIos, + iconvIos, + ], + general: { + name: 'spatialite' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/packages/cppjs-package-spatialite/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/package.json similarity index 70% rename from packages/cppjs-package-spatialite/package.json rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/package.json index 8e32c6f2..61c28c76 100644 --- a/packages/cppjs-package-spatialite/package.json +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios/package.json @@ -1,35 +1,35 @@ { - "name": "@cpp.js/package-spatialite", + "name": "@cpp.js/package-spatialite-ios", "version": "1.0.0", "nativeVersion": "5.1.0", "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "MPL tri-license", "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], "scripts": { - "build": "cppjs build", + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", "build:wasm": "cppjs build -p WebAssembly", "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" + "build:ios": "cppjs build -p iOS" }, "dependencies": { - "@cpp.js/package-geos": "workspace:^", - "@cpp.js/package-proj": "workspace:^", - "@cpp.js/package-sqlite3": "workspace:^", - "@cpp.js/package-zlib": "workspace:^", - "@cpp.js/package-iconv": "workspace:^" + "@cpp.js/package-geos-ios": "workspace:^", + "@cpp.js/package-proj-ios": "workspace:^", + "@cpp.js/package-sqlite3-ios": "workspace:^", + "@cpp.js/package-zlib-ios": "workspace:^", + "@cpp.js/package-iconv-ios": "workspace:^" }, "devDependencies": { "cpp.js": "workspace:^" - }, - "keywords": [ - "spatialite", - "libspatialite", - "cpp.js-package", - "webassembly", - "react-native" - ] + } } diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/.npmignore new file mode 100644 index 00000000..683cc547 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/.npmignore @@ -0,0 +1,9 @@ +dist/prebuilt/iOS-iphoneos +dist/prebuilt/iOS-iphonesimulator +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/LICENSE new file mode 100644 index 00000000..0bbcc806 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/LICENSE @@ -0,0 +1,35 @@ + diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/README.md new file mode 100644 index 00000000..423861a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-spatialite +**Precompiled spatialite library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-spatialite +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; + +export default { + dependencies: [ ++ spatialite + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the spatialite in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(spatialite_version()); +} +``` + +## License +This project includes the precompiled spatialite library, which is distributed under the [MPL tri-license](https://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/boilerplate-1.1/mpl-tri-license-html). + +Spatialite Homepage: [https://www.gaia-gis.it/fossil/libspatialite/index](https://www.gaia-gis.it/fossil/libspatialite/index) diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.build.js new file mode 100644 index 00000000..4ae57ea5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.build.js @@ -0,0 +1,50 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'Android-x86_64': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphoneos': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphonesimulator': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], +}; + +const platformSourceReplaceList = { + 'Android-arm64-v8a': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], + 'Android-x86_64': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], +}; + +export default { + getURL: (version) => `https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${version}.tar.gz`, + copyToSource: { 'config.sub': 'config.sub' }, + sourceReplaceList: (platform) => [ + ...(platformSourceReplaceList[platform] || []), + ], + buildType: 'configure', // cmake, configure + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + '--enable-geosadvanced=yes', '--enable-geopackage=yes', '--enable-examples=no', '--enable-minizip=no', + '--enable-libxml2=no', '--enable-freexl=no', '--disable-rttopo', '--disable-gcp', + `--with-geosconfig=${depPaths.geos.bin}/geos-config`, + `SQLITE3_CFLAGS=-I${depPaths.sqlite3.header}`, + `SQLITE3_LIBS=-L${depPaths.sqlite3.libPath}`, + ], + getExtraLibs: (platform) => platformLibs[platform] || [], +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.config.js new file mode 100644 index 00000000..136d56f5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import spatialiteWasmMultithread from '@cpp.js/package-spatialite-wasm-multithread/cppjs.config.js'; +import spatialiteAndroidMultithread from '@cpp.js/package-spatialite-android-multithread/cppjs.config.js'; +import spatialiteIosMultithread from '@cpp.js/package-spatialite-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + spatialiteWasmMultithread, + spatialiteAndroidMultithread, + spatialiteIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/package.json new file mode 100644 index 00000000..4b2c3955 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-spatialite-multithread", + "version": "1.0.0", + "nativeVersion": "5.1.0", + "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-spatialite-wasm-multithread": "workspace:^", + "@cpp.js/package-spatialite-android-multithread": "workspace:^", + "@cpp.js/package-spatialite-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/.npmignore new file mode 100644 index 00000000..683cc547 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/.npmignore @@ -0,0 +1,9 @@ +dist/prebuilt/iOS-iphoneos +dist/prebuilt/iOS-iphonesimulator +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/LICENSE new file mode 100644 index 00000000..0bbcc806 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/LICENSE @@ -0,0 +1,35 @@ + diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/README.md new file mode 100644 index 00000000..423861a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-spatialite +**Precompiled spatialite library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-spatialite +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; + +export default { + dependencies: [ ++ spatialite + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the spatialite in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(spatialite_version()); +} +``` + +## License +This project includes the precompiled spatialite library, which is distributed under the [MPL tri-license](https://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/boilerplate-1.1/mpl-tri-license-html). + +Spatialite Homepage: [https://www.gaia-gis.it/fossil/libspatialite/index](https://www.gaia-gis.it/fossil/libspatialite/index) diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/config.sub b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/config.sub new file mode 100755 index 00000000..38f3d037 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..4ae57ea5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.build.js @@ -0,0 +1,50 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'Android-x86_64': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphoneos': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphonesimulator': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], +}; + +const platformSourceReplaceList = { + 'Android-arm64-v8a': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], + 'Android-x86_64': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], +}; + +export default { + getURL: (version) => `https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${version}.tar.gz`, + copyToSource: { 'config.sub': 'config.sub' }, + sourceReplaceList: (platform) => [ + ...(platformSourceReplaceList[platform] || []), + ], + buildType: 'configure', // cmake, configure + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + '--enable-geosadvanced=yes', '--enable-geopackage=yes', '--enable-examples=no', '--enable-minizip=no', + '--enable-libxml2=no', '--enable-freexl=no', '--disable-rttopo', '--disable-gcp', + `--with-geosconfig=${depPaths.geos.bin}/geos-config`, + `SQLITE3_CFLAGS=-I${depPaths.sqlite3.header}`, + `SQLITE3_LIBS=-L${depPaths.sqlite3.libPath}`, + ], + getExtraLibs: (platform) => platformLibs[platform] || [], +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..3eda3ef1 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/cppjs.config.js @@ -0,0 +1,29 @@ +import geosWasmMultithread from '@cpp.js/package-geos-wasm-multithread/cppjs.config.js'; +import projWasmMultithread from '@cpp.js/package-proj-wasm-multithread/cppjs.config.js'; +import sqlite3WasmMultithread from '@cpp.js/package-sqlite3-wasm-multithread/cppjs.config.js'; +import zlibWasmMultithread from '@cpp.js/package-zlib-wasm-multithread/cppjs.config.js'; +import iconvWasmMultithread from '@cpp.js/package-iconv-wasm-multithread/cppjs.config.js'; + +export default { + dependencies: [ + geosWasmMultithread, + projWasmMultithread, + sqlite3WasmMultithread, + zlibWasmMultithread, + iconvWasmMultithread, + ], + general: { + name: 'spatialite' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/package.json new file mode 100644 index 00000000..512c95ae --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread/package.json @@ -0,0 +1,35 @@ +{ + "name": "@cpp.js/package-spatialite-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "5.1.0", + "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-geos-wasm-multithread": "workspace:^", + "@cpp.js/package-proj-wasm-multithread": "workspace:^", + "@cpp.js/package-sqlite3-wasm-multithread": "workspace:^", + "@cpp.js/package-zlib-wasm-multithread": "workspace:^", + "@cpp.js/package-iconv-wasm-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/.npmignore new file mode 100644 index 00000000..683cc547 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/.npmignore @@ -0,0 +1,9 @@ +dist/prebuilt/iOS-iphoneos +dist/prebuilt/iOS-iphonesimulator +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/LICENSE new file mode 100644 index 00000000..0bbcc806 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/LICENSE @@ -0,0 +1,35 @@ + diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/README.md new file mode 100644 index 00000000..423861a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-spatialite +**Precompiled spatialite library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-spatialite +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; + +export default { + dependencies: [ ++ spatialite + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the spatialite in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(spatialite_version()); +} +``` + +## License +This project includes the precompiled spatialite library, which is distributed under the [MPL tri-license](https://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/boilerplate-1.1/mpl-tri-license-html). + +Spatialite Homepage: [https://www.gaia-gis.it/fossil/libspatialite/index](https://www.gaia-gis.it/fossil/libspatialite/index) diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/config.sub b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/config.sub new file mode 100755 index 00000000..38f3d037 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.build.js new file mode 100644 index 00000000..4ae57ea5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.build.js @@ -0,0 +1,50 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'Android-x86_64': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphoneos': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphonesimulator': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], +}; + +const platformSourceReplaceList = { + 'Android-arm64-v8a': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], + 'Android-x86_64': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], +}; + +export default { + getURL: (version) => `https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${version}.tar.gz`, + copyToSource: { 'config.sub': 'config.sub' }, + sourceReplaceList: (platform) => [ + ...(platformSourceReplaceList[platform] || []), + ], + buildType: 'configure', // cmake, configure + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + '--enable-geosadvanced=yes', '--enable-geopackage=yes', '--enable-examples=no', '--enable-minizip=no', + '--enable-libxml2=no', '--enable-freexl=no', '--disable-rttopo', '--disable-gcp', + `--with-geosconfig=${depPaths.geos.bin}/geos-config`, + `SQLITE3_CFLAGS=-I${depPaths.sqlite3.header}`, + `SQLITE3_LIBS=-L${depPaths.sqlite3.libPath}`, + ], + getExtraLibs: (platform) => platformLibs[platform] || [], +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.config.js new file mode 100644 index 00000000..81d592cb --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/cppjs.config.js @@ -0,0 +1,26 @@ +import geosWasm from '@cpp.js/package-geos-wasm/cppjs.config.js'; +import projWasm from '@cpp.js/package-proj-wasm/cppjs.config.js'; +import sqlite3Wasm from '@cpp.js/package-sqlite3-wasm/cppjs.config.js'; +import zlibWasm from '@cpp.js/package-zlib-wasm/cppjs.config.js'; +import iconvWasm from '@cpp.js/package-iconv-wasm/cppjs.config.js'; + +export default { + dependencies: [ + geosWasm, + projWasm, + sqlite3Wasm, + zlibWasm, + iconvWasm, + ], + general: { + name: 'spatialite' + }, + export: { + type: 'cmake' + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/package.json new file mode 100644 index 00000000..0dd7e920 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm/package.json @@ -0,0 +1,35 @@ +{ + "name": "@cpp.js/package-spatialite-wasm", + "version": "1.0.0", + "nativeVersion": "5.1.0", + "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-geos-wasm": "workspace:^", + "@cpp.js/package-proj-wasm": "workspace:^", + "@cpp.js/package-sqlite3-wasm": "workspace:^", + "@cpp.js/package-zlib-wasm": "workspace:^", + "@cpp.js/package-iconv-wasm": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/.npmignore b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/.npmignore new file mode 100644 index 00000000..683cc547 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/.npmignore @@ -0,0 +1,9 @@ +dist/prebuilt/iOS-iphoneos +dist/prebuilt/iOS-iphonesimulator +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-spatialite/CHANGELOG.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-spatialite/CHANGELOG.md rename to cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/LICENSE b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/LICENSE new file mode 100644 index 00000000..0bbcc806 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/LICENSE @@ -0,0 +1,35 @@ + diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/README.md b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/README.md new file mode 100644 index 00000000..423861a0 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-spatialite +**Precompiled spatialite library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-spatialite +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; + +export default { + dependencies: [ ++ spatialite + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the spatialite in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(spatialite_version()); +} +``` + +## License +This project includes the precompiled spatialite library, which is distributed under the [MPL tri-license](https://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/boilerplate-1.1/mpl-tri-license-html). + +Spatialite Homepage: [https://www.gaia-gis.it/fossil/libspatialite/index](https://www.gaia-gis.it/fossil/libspatialite/index) diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/config.sub b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/config.sub new file mode 100755 index 00000000..38f3d037 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs-package-spatialite.podspec b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs-package-spatialite.podspec new file mode 100644 index 00000000..eb3eee22 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs-package-spatialite.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "spatialite" + s.name = "cppjs-package-spatialite" + s.version = package["nativeVersion"] + s.summary = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." + s.homepage = "https://www.gaia-gis.it/fossil/libspatialite/index" + s.author = "Spatialite Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'spatialite.xcframework', 'geos.xcframework', 'iconv.xcframework', 'proj.xcframework', 'sqlite3.xcframework', 'z.xcframework' +end diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.build.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.build.js new file mode 100644 index 00000000..4ae57ea5 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.build.js @@ -0,0 +1,50 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=x86_64-pc-linux-gnu'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +const platformLibs = { + 'Emscripten-x86_64': ['-lsqlite3'], + 'Android-arm64-v8a': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'Android-x86_64': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphoneos': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], + 'iOS-iphonesimulator': ['-lstdc++', '-lsqlite3', '-lm', '-ltiff', '-lgeos'], +}; + +const platformSourceReplaceList = { + 'Android-arm64-v8a': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], + 'Android-x86_64': [ + { + regex: ' -lpthread', + replacement: '', + paths: ['configure', 'configure.ac', 'src/Makefile.in', 'src/Makefile.am'], + }, + ], +}; + +export default { + getURL: (version) => `https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${version}.tar.gz`, + copyToSource: { 'config.sub': 'config.sub' }, + sourceReplaceList: (platform) => [ + ...(platformSourceReplaceList[platform] || []), + ], + buildType: 'configure', // cmake, configure + getBuildParams: (platform, depPaths) => [ + ...(platformBuild[platform] || []), + '--enable-geosadvanced=yes', '--enable-geopackage=yes', '--enable-examples=no', '--enable-minizip=no', + '--enable-libxml2=no', '--enable-freexl=no', '--disable-rttopo', '--disable-gcp', + `--with-geosconfig=${depPaths.geos.bin}/geos-config`, + `SQLITE3_CFLAGS=-I${depPaths.sqlite3.header}`, + `SQLITE3_LIBS=-L${depPaths.sqlite3.libPath}`, + ], + getExtraLibs: (platform) => platformLibs[platform] || [], +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.config.js b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.config.js new file mode 100644 index 00000000..b4278f47 --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/cppjs.config.js @@ -0,0 +1,14 @@ +import spatialiteWasm from '@cpp.js/package-spatialite-wasm/cppjs.config.js'; +import spatialiteAndroid from '@cpp.js/package-spatialite-android/cppjs.config.js'; +import spatialiteIos from '@cpp.js/package-spatialite-ios/cppjs.config.js'; + +export default { + dependencies: [ + spatialiteWasm, + spatialiteAndroid, + spatialiteIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/package.json b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/package.json new file mode 100644 index 00000000..ff3a5f2c --- /dev/null +++ b/cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-spatialite", + "version": "1.0.0", + "nativeVersion": "5.1.0", + "description": "This package provides SpatiaLite, a spatial extension to SQLite, compiled with Cpp.js for seamless integration in JavaScript, WebAssembly and React Native environments. By using Cpp.js, this package enables high-performance spatial database operations both on the web (via WebAssembly) and native mobile environments (via machine code).", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-spatialite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "MPL tri-license", + "keywords": [ + "spatialite", + "libspatialite", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-spatialite-wasm": "workspace:^", + "@cpp.js/package-spatialite-android": "workspace:^", + "@cpp.js/package-spatialite-ios": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/.npmignore b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/CHANGELOG.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/CHANGELOG.md new file mode 100644 index 00000000..620e5655 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-sqlite3-android-multithread + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/packages/cppjs-package-sqlite3/LICENSE b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-sqlite3/LICENSE rename to cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/LICENSE diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/README.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/README.md new file mode 100644 index 00000000..451000b9 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-sqlite3-android-multithread +**Precompiled sqlite3 library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-sqlite3 +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; + +export default { + dependencies: [ ++ sqlite3 + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the sqlite3 in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(sqlite3_libversion()); +} +``` + +## License +This project includes the precompiled sqlite3 library, which is distributed under the [Public Domain License](https://www.sqlite.org/copyright.html). + +Sqlite3 Homepage: [https://www.sqlite.org](https://www.sqlite.org) diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/cppjs.build.js new file mode 100644 index 00000000..019abfb7 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/cppjs.build.js @@ -0,0 +1,25 @@ +const platformBuild = { + 'Android-arm64-v8a': ['--disable-static', '--host=aarch64-linux-android', '--enable-threadsafe', '--disable-rpath'], + 'Android-x86_64': ['--disable-static', '--host=x86_64-linux-android', '--enable-threadsafe', '--disable-rpath'], +}; + +export default { + getURL: (version) => { + const versionArray = version.split('.'); + const VERSION = (versionArray[0] * 1000000 + versionArray[1] * 10000 + versionArray[2] * 100).toString(); + return `https://www.sqlite.org/2025/sqlite-autoconf-${VERSION}.tar.gz`; + }, + replaceList: [ + { + regex: 'install-dll-unix-generic: install-dll-out-implib', + replacement: 'install-dll-unix-generic: install-dll-out-implib\n\t$(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"\ninstall-dll-unix-generic2:', + paths: ['Makefile.in'], + }, + ], + buildType: 'configure', + getBuildParams: (platform) => platformBuild[platform], + env: [ + 'CFLAGS="-fPIE -fPIC -DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"', + 'LDFLAGS="-pie -Wl,-soname,libsqlite3.so"', + ], +}; diff --git a/packages/cppjs-package-geotiff/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/cppjs.config.js similarity index 50% rename from packages/cppjs-package-geotiff/cppjs.config.js rename to cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/cppjs.config.js index 62651b4a..56100ea2 100644 --- a/packages/cppjs-package-geotiff/cppjs.config.js +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/cppjs.config.js @@ -1,17 +1,16 @@ -import proj from '@cpp.js/package-proj/cppjs.config.js'; -import tiff from '@cpp.js/package-tiff/cppjs.config.js'; -import zlib from '@cpp.js/package-zlib/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib-android-multithread/cppjs.config.js'; export default { general: { - name: 'geotiff', + name: 'sqlite3', }, export: { type: 'cmake', }, + build: { + usePthread: true, + }, dependencies: [ - proj, - tiff, zlib, ], paths: { diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/package.json new file mode 100644 index 00000000..38671ff0 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread/package.json @@ -0,0 +1,30 @@ +{ + "name": "@cpp.js/package-sqlite3-android-multithread", + "version": "1.0.0", + "nativeVersion": "3.51.1", + "description": "This package provides the precompiled SQLite3 database engine, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers powerful database capabilities, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-sqlite3#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Public Domain", + "type": "module", + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "dependencies": { + "@cpp.js/package-zlib-android-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "sqlite", + "sqlite3", + "libsqlite3", + "database", + "cpp.js-package", + "webassembly", + "react-native" + ] +} \ No newline at end of file diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/.npmignore b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/CHANGELOG.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/CHANGELOG.md new file mode 100644 index 00000000..82a7773f --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-sqlite3-android + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/LICENSE b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/LICENSE new file mode 100644 index 00000000..5c212d38 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/LICENSE @@ -0,0 +1,91 @@ +License Information +=================== + +SQLite Is Public Domain +----------------------- + +The SQLite source code, including all of the files in the directories +listed in the bullets below are +[Public Domain](https://sqlite.org/copyright.html). +The authors have submitted written affidavits releasing their work to +the public for any use. Every byte of the public-domain code can be +traced back to the original authors. The files of this repository +that are public domain include the following: + + * All of the primary SQLite source code files found in the + [src/ directory](https://sqlite.org/src/tree/src?type=tree&expand) + * All of the test cases and testing code in the + [test/ directory](https://sqlite.org/src/tree/test?type=tree&expand) + * All of the SQLite extension source code and test cases in the + [ext/ directory](https://sqlite.org/src/tree/ext?type=tree&expand) + * All code that ends up in the "sqlite3.c" and "sqlite3.h" build products + that actually implement the SQLite RDBMS. + * All of the code used to compile the + [command-line interface](https://sqlite.org/cli.html) + * All of the code used to build various utility programs such as + "sqldiff", "sqlite3_rsync", and "sqlite3_analyzer". + + +The public domain source files usually contain a header comment +similar to the following to make it clear that the software is +public domain. + +> ~~~ +The author disclaims copyright to this source code. In place of +a legal notice, here is a blessing: + + * May you do good and not evil. + * May you find forgiveness for yourself and forgive others. + * May you share freely, never taking more than you give. +~~~ + +Almost every file you find in this source repository will be +public domain. But there are a small number of exceptions: + +Non-Public-Domain Code Included With This Source Repository AS A Convenience +---------------------------------------------------------------------------- + +This repository contains a (relatively) small amount of non-public-domain +code used to help implement the configuration and build logic. In other +words, there are some non-public-domain files used to implement: + +> ~~~ +./configure && make +~~~ + +In all cases, the non-public-domain files included with this +repository have generous BSD-style licenses. So anyone is free to +use any of the code in this source repository for any purpose, though +attribution may be required to reuse or republish the configure and +build scripts. None of the non-public-domain code ever actually reaches +the build products, such as "sqlite3.c", however, so no attribution is +required to use SQLite itself. The non-public-domain code consists of +scripts used to help compile SQLite. The non-public-domain code is +technically not part of SQLite. The non-public-domain code is +included in this repository as a convenience to developers, so that those +who want to build SQLite do not need to go download a bunch of +third-party build scripts in order to compile SQLite. + +Non-public-domain code included in this respository includes: + + * The ["autosetup"](http://msteveb.github.io/autosetup/) configuration + system that is contained (mostly) the autosetup/ directory, but also + includes the "./configure" script at the top-level of this archive. + Autosetup has a separate BSD-style license. See the + [autosetup/LICENSE](http://msteveb.github.io/autosetup/license/) + for details. + + * There are BSD-style licenses on some of the configuration + software found in the legacy autoconf/ directory and its + subdirectories. + +The following unix shell command is can be run from the top-level +of this source repository in order to remove all non-public-domain +code: + +> ~~~ +rm -rf configure autosetup autoconf +~~~ + +If you unpack this source repository and then run the command above, what +is left will be 100% public domain. diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/README.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/README.md new file mode 100644 index 00000000..4396ef2a --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-sqlite3-android +**Precompiled sqlite3 library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-sqlite3 +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; + +export default { + dependencies: [ ++ sqlite3 + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the sqlite3 in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(sqlite3_libversion()); +} +``` + +## License +This project includes the precompiled sqlite3 library, which is distributed under the [Public Domain License](https://www.sqlite.org/copyright.html). + +Sqlite3 Homepage: [https://www.sqlite.org](https://www.sqlite.org) diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.build.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.build.js new file mode 100644 index 00000000..31bb33d8 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.build.js @@ -0,0 +1,25 @@ +const platformBuild = { + 'Android-arm64-v8a': ['--disable-static', '--host=aarch64-linux-android', '--disable-rpath'], + 'Android-x86_64': ['--disable-static', '--host=x86_64-linux-android', '--disable-rpath'], +}; + +export default { + getURL: (version) => { + const versionArray = version.split('.'); + const VERSION = (versionArray[0] * 1000000 + versionArray[1] * 10000 + versionArray[2] * 100).toString(); + return `https://www.sqlite.org/2025/sqlite-autoconf-${VERSION}.tar.gz`; + }, + replaceList: [ + { + regex: 'install-dll-unix-generic: install-dll-out-implib', + replacement: 'install-dll-unix-generic: install-dll-out-implib\n\t$(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"\ninstall-dll-unix-generic2:', + paths: ['Makefile.in'], + }, + ], + buildType: 'configure', + getBuildParams: (platform) => platformBuild[platform], + env: [ + 'CFLAGS="-fPIE -fPIC -DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"', + 'LDFLAGS="-pie -Wl,-soname,libsqlite3.so"', + ], +}; diff --git a/packages/cppjs-package-tiff/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.config.js similarity index 66% rename from packages/cppjs-package-tiff/cppjs.config.js rename to cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.config.js index c0a2dc7c..08980175 100644 --- a/packages/cppjs-package-tiff/cppjs.config.js +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.config.js @@ -1,12 +1,11 @@ -import zlib from '@cpp.js/package-zlib/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib-android/cppjs.config.js'; export default { general: { - name: 'tiff', + name: 'sqlite3', }, export: { type: 'cmake', - libName: ['tiff', 'tiffxx'], }, dependencies: [ zlib, diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/package.json new file mode 100644 index 00000000..d13eab97 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/package.json @@ -0,0 +1,30 @@ +{ + "name": "@cpp.js/package-sqlite3-android", + "version": "1.0.0", + "nativeVersion": "3.51.1", + "description": "This package provides the precompiled SQLite3 database engine, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers powerful database capabilities, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-sqlite3#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Public Domain", + "type": "module", + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "dependencies": { + "@cpp.js/package-zlib-android": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "sqlite", + "sqlite3", + "libsqlite3", + "database", + "cpp.js-package", + "webassembly", + "react-native" + ] +} \ No newline at end of file diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/CHANGELOG.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/CHANGELOG.md new file mode 100644 index 00000000..adc8113a --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-sqlite3-ios-multithread + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/LICENSE new file mode 100644 index 00000000..5c212d38 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/LICENSE @@ -0,0 +1,91 @@ +License Information +=================== + +SQLite Is Public Domain +----------------------- + +The SQLite source code, including all of the files in the directories +listed in the bullets below are +[Public Domain](https://sqlite.org/copyright.html). +The authors have submitted written affidavits releasing their work to +the public for any use. Every byte of the public-domain code can be +traced back to the original authors. The files of this repository +that are public domain include the following: + + * All of the primary SQLite source code files found in the + [src/ directory](https://sqlite.org/src/tree/src?type=tree&expand) + * All of the test cases and testing code in the + [test/ directory](https://sqlite.org/src/tree/test?type=tree&expand) + * All of the SQLite extension source code and test cases in the + [ext/ directory](https://sqlite.org/src/tree/ext?type=tree&expand) + * All code that ends up in the "sqlite3.c" and "sqlite3.h" build products + that actually implement the SQLite RDBMS. + * All of the code used to compile the + [command-line interface](https://sqlite.org/cli.html) + * All of the code used to build various utility programs such as + "sqldiff", "sqlite3_rsync", and "sqlite3_analyzer". + + +The public domain source files usually contain a header comment +similar to the following to make it clear that the software is +public domain. + +> ~~~ +The author disclaims copyright to this source code. In place of +a legal notice, here is a blessing: + + * May you do good and not evil. + * May you find forgiveness for yourself and forgive others. + * May you share freely, never taking more than you give. +~~~ + +Almost every file you find in this source repository will be +public domain. But there are a small number of exceptions: + +Non-Public-Domain Code Included With This Source Repository AS A Convenience +---------------------------------------------------------------------------- + +This repository contains a (relatively) small amount of non-public-domain +code used to help implement the configuration and build logic. In other +words, there are some non-public-domain files used to implement: + +> ~~~ +./configure && make +~~~ + +In all cases, the non-public-domain files included with this +repository have generous BSD-style licenses. So anyone is free to +use any of the code in this source repository for any purpose, though +attribution may be required to reuse or republish the configure and +build scripts. None of the non-public-domain code ever actually reaches +the build products, such as "sqlite3.c", however, so no attribution is +required to use SQLite itself. The non-public-domain code consists of +scripts used to help compile SQLite. The non-public-domain code is +technically not part of SQLite. The non-public-domain code is +included in this repository as a convenience to developers, so that those +who want to build SQLite do not need to go download a bunch of +third-party build scripts in order to compile SQLite. + +Non-public-domain code included in this respository includes: + + * The ["autosetup"](http://msteveb.github.io/autosetup/) configuration + system that is contained (mostly) the autosetup/ directory, but also + includes the "./configure" script at the top-level of this archive. + Autosetup has a separate BSD-style license. See the + [autosetup/LICENSE](http://msteveb.github.io/autosetup/license/) + for details. + + * There are BSD-style licenses on some of the configuration + software found in the legacy autoconf/ directory and its + subdirectories. + +The following unix shell command is can be run from the top-level +of this source repository in order to remove all non-public-domain +code: + +> ~~~ +rm -rf configure autosetup autoconf +~~~ + +If you unpack this source repository and then run the command above, what +is left will be 100% public domain. diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/README.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/README.md new file mode 100644 index 00000000..535d7894 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-sqlite3-ios +**Precompiled sqlite3 library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-sqlite3 +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; + +export default { + dependencies: [ ++ sqlite3 + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the sqlite3 in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(sqlite3_libversion()); +} +``` + +## License +This project includes the precompiled sqlite3 library, which is distributed under the [Public Domain License](https://www.sqlite.org/copyright.html). + +Sqlite3 Homepage: [https://www.sqlite.org](https://www.sqlite.org) diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..75ceb605 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.build.js @@ -0,0 +1,19 @@ +const platformBuild = { + 'iOS-iphoneos': ['--disable-shared', '--host=arm-apple-darwin', '--enable-threadsafe'], + 'iOS-iphonesimulator': ['--disable-shared', '--host=x86_64-apple-darwin', '--enable-threadsafe'], +}; + +export default { + getURL: (version) => { + const versionArray = version.split('.'); + const VERSION = (versionArray[0] * 1000000 + versionArray[1] * 10000 + versionArray[2] * 100).toString(); + return `https://www.sqlite.org/2025/sqlite-autoconf-${VERSION}.tar.gz`; + }, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], + env: [ + 'CFLAGS="-DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"', + ], +}; diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..94c01d2e --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/cppjs.config.js @@ -0,0 +1,21 @@ +import zlib from '@cpp.js/package-zlib-ios-multithread/cppjs.config.js'; + +export default { + general: { + name: 'sqlite3', + }, + export: { + type: 'cmake', + }, + build: { + usePthread: true, + }, + dependencies: [ + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', + output: 'dist', + }, +}; diff --git a/packages/cppjs-package-sqlite3/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/package.json similarity index 72% rename from packages/cppjs-package-sqlite3/package.json rename to cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/package.json index e52147c0..fbc489d2 100644 --- a/packages/cppjs-package-sqlite3/package.json +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread/package.json @@ -1,22 +1,19 @@ { - "name": "@cpp.js/package-sqlite3", + "name": "@cpp.js/package-sqlite3-ios-multithread", "version": "1.0.0", - "nativeVersion": "3.49.1", + "nativeVersion": "3.50.4", "description": "This package provides the precompiled SQLite3 database engine, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers powerful database capabilities, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-sqlite3#readme", "repository": "https://github.com/bugra9/cpp.js.git", "license": "Public Domain", "type": "module", "scripts": { - "build": "cppjs build", - "build:wasm": "cppjs build -p WebAssembly", - "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist", "prepublishOnly": "cppjs build" }, "dependencies": { - "@cpp.js/package-zlib": "workspace:^" + "@cpp.js/package-zlib-ios-multithread": "workspace:^" }, "devDependencies": { "cpp.js": "workspace:^" diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/.npmignore b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/CHANGELOG.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/CHANGELOG.md new file mode 100644 index 00000000..02227e11 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-sqlite3-ios + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/LICENSE b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/LICENSE new file mode 100644 index 00000000..5c212d38 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/LICENSE @@ -0,0 +1,91 @@ +License Information +=================== + +SQLite Is Public Domain +----------------------- + +The SQLite source code, including all of the files in the directories +listed in the bullets below are +[Public Domain](https://sqlite.org/copyright.html). +The authors have submitted written affidavits releasing their work to +the public for any use. Every byte of the public-domain code can be +traced back to the original authors. The files of this repository +that are public domain include the following: + + * All of the primary SQLite source code files found in the + [src/ directory](https://sqlite.org/src/tree/src?type=tree&expand) + * All of the test cases and testing code in the + [test/ directory](https://sqlite.org/src/tree/test?type=tree&expand) + * All of the SQLite extension source code and test cases in the + [ext/ directory](https://sqlite.org/src/tree/ext?type=tree&expand) + * All code that ends up in the "sqlite3.c" and "sqlite3.h" build products + that actually implement the SQLite RDBMS. + * All of the code used to compile the + [command-line interface](https://sqlite.org/cli.html) + * All of the code used to build various utility programs such as + "sqldiff", "sqlite3_rsync", and "sqlite3_analyzer". + + +The public domain source files usually contain a header comment +similar to the following to make it clear that the software is +public domain. + +> ~~~ +The author disclaims copyright to this source code. In place of +a legal notice, here is a blessing: + + * May you do good and not evil. + * May you find forgiveness for yourself and forgive others. + * May you share freely, never taking more than you give. +~~~ + +Almost every file you find in this source repository will be +public domain. But there are a small number of exceptions: + +Non-Public-Domain Code Included With This Source Repository AS A Convenience +---------------------------------------------------------------------------- + +This repository contains a (relatively) small amount of non-public-domain +code used to help implement the configuration and build logic. In other +words, there are some non-public-domain files used to implement: + +> ~~~ +./configure && make +~~~ + +In all cases, the non-public-domain files included with this +repository have generous BSD-style licenses. So anyone is free to +use any of the code in this source repository for any purpose, though +attribution may be required to reuse or republish the configure and +build scripts. None of the non-public-domain code ever actually reaches +the build products, such as "sqlite3.c", however, so no attribution is +required to use SQLite itself. The non-public-domain code consists of +scripts used to help compile SQLite. The non-public-domain code is +technically not part of SQLite. The non-public-domain code is +included in this repository as a convenience to developers, so that those +who want to build SQLite do not need to go download a bunch of +third-party build scripts in order to compile SQLite. + +Non-public-domain code included in this respository includes: + + * The ["autosetup"](http://msteveb.github.io/autosetup/) configuration + system that is contained (mostly) the autosetup/ directory, but also + includes the "./configure" script at the top-level of this archive. + Autosetup has a separate BSD-style license. See the + [autosetup/LICENSE](http://msteveb.github.io/autosetup/license/) + for details. + + * There are BSD-style licenses on some of the configuration + software found in the legacy autoconf/ directory and its + subdirectories. + +The following unix shell command is can be run from the top-level +of this source repository in order to remove all non-public-domain +code: + +> ~~~ +rm -rf configure autosetup autoconf +~~~ + +If you unpack this source repository and then run the command above, what +is left will be 100% public domain. diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/README.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/README.md new file mode 100644 index 00000000..535d7894 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-sqlite3-ios +**Precompiled sqlite3 library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-sqlite3 +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; + +export default { + dependencies: [ ++ sqlite3 + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the sqlite3 in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(sqlite3_libversion()); +} +``` + +## License +This project includes the precompiled sqlite3 library, which is distributed under the [Public Domain License](https://www.sqlite.org/copyright.html). + +Sqlite3 Homepage: [https://www.sqlite.org](https://www.sqlite.org) diff --git a/packages/cppjs-package-sqlite3/cppjs.build.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/cppjs.build.js similarity index 78% rename from packages/cppjs-package-sqlite3/cppjs.build.js rename to cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/cppjs.build.js index 93d4049f..894b5476 100644 --- a/packages/cppjs-package-sqlite3/cppjs.build.js +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/cppjs.build.js @@ -1,7 +1,4 @@ const platformBuild = { - 'Emscripten-x86_64': ['--disable-shared', '--host=wasm32-unknown-emscripten'], - 'Android-arm64-v8a': ['--disable-static', '--host=aarch64-linux-android'], - 'Android-x86_64': ['--disable-static', '--host=x86_64-linux-android'], 'iOS-iphoneos': ['--disable-shared', '--host=arm-apple-darwin'], 'iOS-iphonesimulator': ['--disable-shared', '--host=x86_64-apple-darwin'], }; diff --git a/packages/cppjs-package-sqlite3/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/cppjs.config.js similarity index 80% rename from packages/cppjs-package-sqlite3/cppjs.config.js rename to cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/cppjs.config.js index b3bf19e3..d6b74a0e 100644 --- a/packages/cppjs-package-sqlite3/cppjs.config.js +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/cppjs.config.js @@ -1,4 +1,4 @@ -import zlib from '@cpp.js/package-zlib/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib-ios/cppjs.config.js'; export default { general: { diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/package.json new file mode 100644 index 00000000..dfa5fc42 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/package.json @@ -0,0 +1,30 @@ +{ + "name": "@cpp.js/package-sqlite3-ios", + "version": "1.0.0", + "nativeVersion": "3.50.4", + "description": "This package provides the precompiled SQLite3 database engine, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers powerful database capabilities, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-sqlite3#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Public Domain", + "type": "module", + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "dependencies": { + "@cpp.js/package-zlib-ios": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "sqlite", + "sqlite3", + "libsqlite3", + "database", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/cppjs.config.js new file mode 100644 index 00000000..354f7d04 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import sqlite3WasmMultithread from '@cpp.js/package-sqlite3-wasm-multithread/cppjs.config.js'; +import sqlite3AndroidMultithread from '@cpp.js/package-sqlite3-android-multithread/cppjs.config.js'; +import sqlite3IOSMultithread from '@cpp.js/package-sqlite3-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + sqlite3WasmMultithread, + sqlite3AndroidMultithread, + sqlite3IOSMultithread + ], + paths: { + config: import.meta.url, + }, +}; diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/package.json new file mode 100644 index 00000000..07919579 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread/package.json @@ -0,0 +1,24 @@ +{ + "name": "@cpp.js/package-sqlite3-multithread", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-sqlite3-wasm-multithread": "workspace:^", + "@cpp.js/package-sqlite3-android-multithread": "workspace:^", + "@cpp.js/package-sqlite3-ios-multithread": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/CHANGELOG.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/CHANGELOG.md new file mode 100644 index 00000000..d6bb5ba4 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-sqlite3-wasm-multithread + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/LICENSE new file mode 100644 index 00000000..5c212d38 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/LICENSE @@ -0,0 +1,91 @@ +License Information +=================== + +SQLite Is Public Domain +----------------------- + +The SQLite source code, including all of the files in the directories +listed in the bullets below are +[Public Domain](https://sqlite.org/copyright.html). +The authors have submitted written affidavits releasing their work to +the public for any use. Every byte of the public-domain code can be +traced back to the original authors. The files of this repository +that are public domain include the following: + + * All of the primary SQLite source code files found in the + [src/ directory](https://sqlite.org/src/tree/src?type=tree&expand) + * All of the test cases and testing code in the + [test/ directory](https://sqlite.org/src/tree/test?type=tree&expand) + * All of the SQLite extension source code and test cases in the + [ext/ directory](https://sqlite.org/src/tree/ext?type=tree&expand) + * All code that ends up in the "sqlite3.c" and "sqlite3.h" build products + that actually implement the SQLite RDBMS. + * All of the code used to compile the + [command-line interface](https://sqlite.org/cli.html) + * All of the code used to build various utility programs such as + "sqldiff", "sqlite3_rsync", and "sqlite3_analyzer". + + +The public domain source files usually contain a header comment +similar to the following to make it clear that the software is +public domain. + +> ~~~ +The author disclaims copyright to this source code. In place of +a legal notice, here is a blessing: + + * May you do good and not evil. + * May you find forgiveness for yourself and forgive others. + * May you share freely, never taking more than you give. +~~~ + +Almost every file you find in this source repository will be +public domain. But there are a small number of exceptions: + +Non-Public-Domain Code Included With This Source Repository AS A Convenience +---------------------------------------------------------------------------- + +This repository contains a (relatively) small amount of non-public-domain +code used to help implement the configuration and build logic. In other +words, there are some non-public-domain files used to implement: + +> ~~~ +./configure && make +~~~ + +In all cases, the non-public-domain files included with this +repository have generous BSD-style licenses. So anyone is free to +use any of the code in this source repository for any purpose, though +attribution may be required to reuse or republish the configure and +build scripts. None of the non-public-domain code ever actually reaches +the build products, such as "sqlite3.c", however, so no attribution is +required to use SQLite itself. The non-public-domain code consists of +scripts used to help compile SQLite. The non-public-domain code is +technically not part of SQLite. The non-public-domain code is +included in this repository as a convenience to developers, so that those +who want to build SQLite do not need to go download a bunch of +third-party build scripts in order to compile SQLite. + +Non-public-domain code included in this respository includes: + + * The ["autosetup"](http://msteveb.github.io/autosetup/) configuration + system that is contained (mostly) the autosetup/ directory, but also + includes the "./configure" script at the top-level of this archive. + Autosetup has a separate BSD-style license. See the + [autosetup/LICENSE](http://msteveb.github.io/autosetup/license/) + for details. + + * There are BSD-style licenses on some of the configuration + software found in the legacy autoconf/ directory and its + subdirectories. + +The following unix shell command is can be run from the top-level +of this source repository in order to remove all non-public-domain +code: + +> ~~~ +rm -rf configure autosetup autoconf +~~~ + +If you unpack this source repository and then run the command above, what +is left will be 100% public domain. diff --git a/packages/cppjs-package-sqlite3/README.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/README.md similarity index 100% rename from packages/cppjs-package-sqlite3/README.md rename to cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/README.md diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..b6b311b0 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.build.js @@ -0,0 +1,12 @@ +export default { + getURL: (version) => { + const versionArray = version.split('.'); + const VERSION = (versionArray[0] * 1000000 + versionArray[1] * 10000 + versionArray[2] * 100).toString(); + return `https://www.sqlite.org/2025/sqlite-autoconf-${VERSION}.tar.gz`; + }, + buildType: 'configure', + getBuildParams: () => ['--disable-shared', '--host=wasm32-unknown-emscripten', '--enable-threadsafe'], + env: [ + 'CFLAGS="-DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"', + ], +}; diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..2b5071f1 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/cppjs.config.js @@ -0,0 +1,21 @@ +import zlib from '@cpp.js/package-zlib-wasm-multithread/cppjs.config.js'; + +export default { + general: { + name: 'sqlite3', + }, + export: { + type: 'cmake', + }, + build: { + usePthread: true, + }, + dependencies: [ + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', + output: 'dist', + } +}; diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/package.json new file mode 100644 index 00000000..baa45165 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread/package.json @@ -0,0 +1,30 @@ +{ + "name": "@cpp.js/package-sqlite3-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "3.50.4", + "description": "This package provides the precompiled SQLite3 database engine, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers powerful database capabilities, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-sqlite3#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Public Domain", + "type": "module", + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "dependencies": { + "@cpp.js/package-zlib-wasm-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "sqlite", + "sqlite3", + "libsqlite3", + "database", + "cpp.js-package", + "webassembly", + "react-native" + ] +} \ No newline at end of file diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/.npmignore b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/CHANGELOG.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/CHANGELOG.md new file mode 100644 index 00000000..d6bb5ba4 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-sqlite3-wasm-multithread + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/LICENSE b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/LICENSE new file mode 100644 index 00000000..5c212d38 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/LICENSE @@ -0,0 +1,91 @@ +License Information +=================== + +SQLite Is Public Domain +----------------------- + +The SQLite source code, including all of the files in the directories +listed in the bullets below are +[Public Domain](https://sqlite.org/copyright.html). +The authors have submitted written affidavits releasing their work to +the public for any use. Every byte of the public-domain code can be +traced back to the original authors. The files of this repository +that are public domain include the following: + + * All of the primary SQLite source code files found in the + [src/ directory](https://sqlite.org/src/tree/src?type=tree&expand) + * All of the test cases and testing code in the + [test/ directory](https://sqlite.org/src/tree/test?type=tree&expand) + * All of the SQLite extension source code and test cases in the + [ext/ directory](https://sqlite.org/src/tree/ext?type=tree&expand) + * All code that ends up in the "sqlite3.c" and "sqlite3.h" build products + that actually implement the SQLite RDBMS. + * All of the code used to compile the + [command-line interface](https://sqlite.org/cli.html) + * All of the code used to build various utility programs such as + "sqldiff", "sqlite3_rsync", and "sqlite3_analyzer". + + +The public domain source files usually contain a header comment +similar to the following to make it clear that the software is +public domain. + +> ~~~ +The author disclaims copyright to this source code. In place of +a legal notice, here is a blessing: + + * May you do good and not evil. + * May you find forgiveness for yourself and forgive others. + * May you share freely, never taking more than you give. +~~~ + +Almost every file you find in this source repository will be +public domain. But there are a small number of exceptions: + +Non-Public-Domain Code Included With This Source Repository AS A Convenience +---------------------------------------------------------------------------- + +This repository contains a (relatively) small amount of non-public-domain +code used to help implement the configuration and build logic. In other +words, there are some non-public-domain files used to implement: + +> ~~~ +./configure && make +~~~ + +In all cases, the non-public-domain files included with this +repository have generous BSD-style licenses. So anyone is free to +use any of the code in this source repository for any purpose, though +attribution may be required to reuse or republish the configure and +build scripts. None of the non-public-domain code ever actually reaches +the build products, such as "sqlite3.c", however, so no attribution is +required to use SQLite itself. The non-public-domain code consists of +scripts used to help compile SQLite. The non-public-domain code is +technically not part of SQLite. The non-public-domain code is +included in this repository as a convenience to developers, so that those +who want to build SQLite do not need to go download a bunch of +third-party build scripts in order to compile SQLite. + +Non-public-domain code included in this respository includes: + + * The ["autosetup"](http://msteveb.github.io/autosetup/) configuration + system that is contained (mostly) the autosetup/ directory, but also + includes the "./configure" script at the top-level of this archive. + Autosetup has a separate BSD-style license. See the + [autosetup/LICENSE](http://msteveb.github.io/autosetup/license/) + for details. + + * There are BSD-style licenses on some of the configuration + software found in the legacy autoconf/ directory and its + subdirectories. + +The following unix shell command is can be run from the top-level +of this source repository in order to remove all non-public-domain +code: + +> ~~~ +rm -rf configure autosetup autoconf +~~~ + +If you unpack this source repository and then run the command above, what +is left will be 100% public domain. diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/README.md b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/README.md new file mode 100644 index 00000000..15f710c1 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-sqlite3-wasm +**Precompiled sqlite3 library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-sqlite3 +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; + +export default { + dependencies: [ ++ sqlite3 + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the sqlite3 in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(sqlite3_libversion()); +} +``` + +## License +This project includes the precompiled sqlite3 library, which is distributed under the [Public Domain License](https://www.sqlite.org/copyright.html). + +Sqlite3 Homepage: [https://www.sqlite.org](https://www.sqlite.org) diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.build.js new file mode 100644 index 00000000..7fcfcd1f --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.build.js @@ -0,0 +1,12 @@ +export default { + getURL: (version) => { + const versionArray = version.split('.'); + const VERSION = (versionArray[0] * 1000000 + versionArray[1] * 10000 + versionArray[2] * 100).toString(); + return `https://www.sqlite.org/2025/sqlite-autoconf-${VERSION}.tar.gz`; + }, + buildType: 'configure', + getBuildParams: () => ['--disable-shared', '--host=wasm32-unknown-emscripten'], + env: [ + 'CFLAGS="-DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"', + ], +}; diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.config.js new file mode 100644 index 00000000..ba554613 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.config.js @@ -0,0 +1,18 @@ +import zlib from '@cpp.js/package-zlib-wasm/cppjs.config.js'; + +export default { + general: { + name: 'sqlite3', + }, + export: { + type: 'cmake', + }, + dependencies: [ + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', + output: 'dist', + }, +}; diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/package.json new file mode 100644 index 00000000..8da50ee6 --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/package.json @@ -0,0 +1,30 @@ +{ + "name": "@cpp.js/package-sqlite3-wasm", + "version": "1.0.0", + "nativeVersion": "3.50.4", + "description": "This package provides the precompiled SQLite3 database engine, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers powerful database capabilities, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-sqlite3#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Public Domain", + "type": "module", + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "dependencies": { + "@cpp.js/package-zlib-wasm": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "sqlite", + "sqlite3", + "libsqlite3", + "database", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/cppjs.config.js b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/cppjs.config.js new file mode 100644 index 00000000..c2db9ccf --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/cppjs.config.js @@ -0,0 +1,14 @@ +import sqlite3Wasm from '@cpp.js/package-sqlite3-wasm/cppjs.config.js'; +import sqlite3Android from '@cpp.js/package-sqlite3-android/cppjs.config.js'; +import sqlite3IOS from '@cpp.js/package-sqlite3-ios/cppjs.config.js'; + +export default { + dependencies: [ + sqlite3Wasm, + sqlite3Android, + sqlite3IOS + ], + paths: { + config: import.meta.url, + }, +}; diff --git a/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/package.json b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/package.json new file mode 100644 index 00000000..d64d784b --- /dev/null +++ b/cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3/package.json @@ -0,0 +1,25 @@ +{ + "name": "@cpp.js/package-sqlite3", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled sqlite3 library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers database functionalities through the sqlite3 API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-sqlite3#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "", + "type": "module", + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-sqlite3-wasm": "workspace:^", + "@cpp.js/package-sqlite3-android": "workspace:^", + "@cpp.js/package-sqlite3-ios": "workspace:^" + }, + "keywords": [ + "sqlite", + "sqlite3", + "libsqlite", + "libsqlite3", + "cpp.js-package", + "webassembly", + "react-native" + ] +} \ No newline at end of file diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-tiff/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-tiff/LICENSE rename to cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/LICENSE diff --git a/packages/cppjs-package-tiff/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-tiff/README.md rename to cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/README.md diff --git a/packages/cppjs-package-tiff/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-tiff/cppjs.build.js rename to cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/cppjs.build.js diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/cppjs.config.js new file mode 100644 index 00000000..f4cded71 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/cppjs.config.js @@ -0,0 +1,25 @@ +import zlibAndroidMultithread from '@cpp.js/package-zlib-android-multithread/cppjs.config.js'; + +export default { + dependencies: [ + zlibAndroidMultithread, + ], + general: { + name: 'tiff' + }, + export: { + type: 'cmake', + libName: [ + 'tiff', + 'tiffxx' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/package.json new file mode 100644 index 00000000..dcbfbf63 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-tiff-android-multithread", + "version": "1.0.0", + "nativeVersion": "4.7.0", + "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-zlib-android-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/LICENSE new file mode 100644 index 00000000..6833704e --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/LICENSE @@ -0,0 +1,9 @@ + +Copyright © 1988-1997 Sam Leffler +Copyright © 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/README.md new file mode 100644 index 00000000..a1e5023f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-tiff +**Precompiled tiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-tiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import tiff from '@cpp.js/package-tiff/cppjs.config.js'; + +export default { + dependencies: [ ++ tiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the tiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(TIFFGetVersion()); +} +``` + +## License +This project includes the precompiled tiff library, which is distributed under the [libtiff License](https://libtiff.gitlab.io/libtiff/project/license.html). + +Tiff Homepage: [https://libtiff.gitlab.io/libtiff/index.html](https://libtiff.gitlab.io/libtiff/index.html) diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.build.js new file mode 100644 index 00000000..e786e79c --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.build.js @@ -0,0 +1,8 @@ +export default { + getURL: (version) => `https://download.osgeo.org/libtiff/tiff-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: () => [ + '-Dtiff-tools=OFF', '-Dtiff-tests=OFF', '-Dtiff-contrib=OFF', + '-Dtiff-docs=OFF', '-Dld-version-script=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.config.js new file mode 100644 index 00000000..685c55d2 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/cppjs.config.js @@ -0,0 +1,22 @@ +import zlibAndroid from '@cpp.js/package-zlib-android/cppjs.config.js'; + +export default { + dependencies: [ + zlibAndroid, + ], + general: { + name: 'tiff' + }, + export: { + type: 'cmake', + libName: [ + 'tiff', + 'tiffxx' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/package.json new file mode 100644 index 00000000..e7eff4b7 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-tiff-android", + "version": "1.0.0", + "nativeVersion": "4.7.0", + "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-zlib-android": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/LICENSE new file mode 100644 index 00000000..6833704e --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/LICENSE @@ -0,0 +1,9 @@ + +Copyright © 1988-1997 Sam Leffler +Copyright © 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/README.md new file mode 100644 index 00000000..a1e5023f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-tiff +**Precompiled tiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-tiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import tiff from '@cpp.js/package-tiff/cppjs.config.js'; + +export default { + dependencies: [ ++ tiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the tiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(TIFFGetVersion()); +} +``` + +## License +This project includes the precompiled tiff library, which is distributed under the [libtiff License](https://libtiff.gitlab.io/libtiff/project/license.html). + +Tiff Homepage: [https://libtiff.gitlab.io/libtiff/index.html](https://libtiff.gitlab.io/libtiff/index.html) diff --git a/packages/cppjs-package-tiff/cppjs-package-tiff.podspec b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs-package-tiff.podspec similarity index 100% rename from packages/cppjs-package-tiff/cppjs-package-tiff.podspec rename to cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs-package-tiff.podspec diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..e786e79c --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.build.js @@ -0,0 +1,8 @@ +export default { + getURL: (version) => `https://download.osgeo.org/libtiff/tiff-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: () => [ + '-Dtiff-tools=OFF', '-Dtiff-tests=OFF', '-Dtiff-contrib=OFF', + '-Dtiff-docs=OFF', '-Dld-version-script=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..61ab440d --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/cppjs.config.js @@ -0,0 +1,25 @@ +import zlibIosMultithread from '@cpp.js/package-zlib-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + zlibIosMultithread, + ], + general: { + name: 'tiff' + }, + export: { + type: 'cmake', + libName: [ + 'tiff', + 'tiffxx' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/package.json new file mode 100644 index 00000000..27a8ed75 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-tiff-ios-multithread", + "version": "1.0.0", + "nativeVersion": "4.7.0", + "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-zlib-ios-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/LICENSE new file mode 100644 index 00000000..6833704e --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/LICENSE @@ -0,0 +1,9 @@ + +Copyright © 1988-1997 Sam Leffler +Copyright © 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/README.md new file mode 100644 index 00000000..a1e5023f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-tiff +**Precompiled tiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-tiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import tiff from '@cpp.js/package-tiff/cppjs.config.js'; + +export default { + dependencies: [ ++ tiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the tiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(TIFFGetVersion()); +} +``` + +## License +This project includes the precompiled tiff library, which is distributed under the [libtiff License](https://libtiff.gitlab.io/libtiff/project/license.html). + +Tiff Homepage: [https://libtiff.gitlab.io/libtiff/index.html](https://libtiff.gitlab.io/libtiff/index.html) diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs-package-tiff.podspec b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs-package-tiff.podspec new file mode 100644 index 00000000..9174e85d --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs-package-tiff.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "tiff" + s.name = "cppjs-package-tiff" + s.version = package["nativeVersion"] + s.summary = "The LibTIFF software provides support for the Tag Image File Format (TIFF), a widely used format for storing image data." + s.homepage = "https://libtiff.gitlab.io/libtiff/index.html" + s.author = "Tiff Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'z.xcframework', 'tiff.xcframework', 'tiffxx.xcframework' +end diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.build.js new file mode 100644 index 00000000..e786e79c --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.build.js @@ -0,0 +1,8 @@ +export default { + getURL: (version) => `https://download.osgeo.org/libtiff/tiff-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: () => [ + '-Dtiff-tools=OFF', '-Dtiff-tests=OFF', '-Dtiff-contrib=OFF', + '-Dtiff-docs=OFF', '-Dld-version-script=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.config.js new file mode 100644 index 00000000..c7e281e6 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/cppjs.config.js @@ -0,0 +1,22 @@ +import zlibIos from '@cpp.js/package-zlib-ios/cppjs.config.js'; + +export default { + dependencies: [ + zlibIos, + ], + general: { + name: 'tiff' + }, + export: { + type: 'cmake', + libName: [ + 'tiff', + 'tiffxx' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/packages/cppjs-package-tiff/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/package.json similarity index 82% rename from packages/cppjs-package-tiff/package.json rename to cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/package.json index 61d4598e..c1443967 100644 --- a/packages/cppjs-package-tiff/package.json +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios/package.json @@ -1,31 +1,31 @@ { - "name": "@cpp.js/package-tiff", + "name": "@cpp.js/package-tiff-ios", "version": "1.0.0", "nativeVersion": "4.7.0", "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "libtiff", "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], "scripts": { - "build": "cppjs build", + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", "build:wasm": "cppjs build -p WebAssembly", "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" + "build:ios": "cppjs build -p iOS" }, "dependencies": { - "@cpp.js/package-zlib": "workspace:^" + "@cpp.js/package-zlib-ios": "workspace:^" }, "devDependencies": { "cpp.js": "workspace:^" - }, - "keywords": [ - "tiff", - "libtiff", - "cpp.js-package", - "webassembly", - "react-native" - ] + } } diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/LICENSE new file mode 100644 index 00000000..6833704e --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/LICENSE @@ -0,0 +1,9 @@ + +Copyright © 1988-1997 Sam Leffler +Copyright © 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/README.md new file mode 100644 index 00000000..a1e5023f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-tiff +**Precompiled tiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-tiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import tiff from '@cpp.js/package-tiff/cppjs.config.js'; + +export default { + dependencies: [ ++ tiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the tiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(TIFFGetVersion()); +} +``` + +## License +This project includes the precompiled tiff library, which is distributed under the [libtiff License](https://libtiff.gitlab.io/libtiff/project/license.html). + +Tiff Homepage: [https://libtiff.gitlab.io/libtiff/index.html](https://libtiff.gitlab.io/libtiff/index.html) diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.build.js new file mode 100644 index 00000000..e786e79c --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.build.js @@ -0,0 +1,8 @@ +export default { + getURL: (version) => `https://download.osgeo.org/libtiff/tiff-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: () => [ + '-Dtiff-tools=OFF', '-Dtiff-tests=OFF', '-Dtiff-contrib=OFF', + '-Dtiff-docs=OFF', '-Dld-version-script=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.config.js new file mode 100644 index 00000000..c5237625 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import tiffWasmMultithread from '@cpp.js/package-tiff-wasm-multithread/cppjs.config.js'; +import tiffAndroidMultithread from '@cpp.js/package-tiff-android-multithread/cppjs.config.js'; +import tiffIosMultithread from '@cpp.js/package-tiff-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + tiffWasmMultithread, + tiffAndroidMultithread, + tiffIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/package.json new file mode 100644 index 00000000..e6d46dc1 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-tiff-multithread", + "version": "1.0.0", + "nativeVersion": "4.7.0", + "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-tiff-wasm-multithread": "workspace:^", + "@cpp.js/package-tiff-android-multithread": "workspace:^", + "@cpp.js/package-tiff-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/LICENSE new file mode 100644 index 00000000..6833704e --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/LICENSE @@ -0,0 +1,9 @@ + +Copyright © 1988-1997 Sam Leffler +Copyright © 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/README.md new file mode 100644 index 00000000..a1e5023f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-tiff +**Precompiled tiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-tiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import tiff from '@cpp.js/package-tiff/cppjs.config.js'; + +export default { + dependencies: [ ++ tiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the tiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(TIFFGetVersion()); +} +``` + +## License +This project includes the precompiled tiff library, which is distributed under the [libtiff License](https://libtiff.gitlab.io/libtiff/project/license.html). + +Tiff Homepage: [https://libtiff.gitlab.io/libtiff/index.html](https://libtiff.gitlab.io/libtiff/index.html) diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..e786e79c --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.build.js @@ -0,0 +1,8 @@ +export default { + getURL: (version) => `https://download.osgeo.org/libtiff/tiff-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: () => [ + '-Dtiff-tools=OFF', '-Dtiff-tests=OFF', '-Dtiff-contrib=OFF', + '-Dtiff-docs=OFF', '-Dld-version-script=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..0bbd7192 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/cppjs.config.js @@ -0,0 +1,25 @@ +import zlibWasmMultithread from '@cpp.js/package-zlib-wasm-multithread/cppjs.config.js'; + +export default { + dependencies: [ + zlibWasmMultithread, + ], + general: { + name: 'tiff' + }, + export: { + type: 'cmake', + libName: [ + 'tiff', + 'tiffxx' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/package.json new file mode 100644 index 00000000..024bac52 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-tiff-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "4.7.0", + "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-zlib-wasm-multithread": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/LICENSE new file mode 100644 index 00000000..6833704e --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/LICENSE @@ -0,0 +1,9 @@ + +Copyright © 1988-1997 Sam Leffler +Copyright © 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/README.md new file mode 100644 index 00000000..a1e5023f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-tiff +**Precompiled tiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-tiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import tiff from '@cpp.js/package-tiff/cppjs.config.js'; + +export default { + dependencies: [ ++ tiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the tiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(TIFFGetVersion()); +} +``` + +## License +This project includes the precompiled tiff library, which is distributed under the [libtiff License](https://libtiff.gitlab.io/libtiff/project/license.html). + +Tiff Homepage: [https://libtiff.gitlab.io/libtiff/index.html](https://libtiff.gitlab.io/libtiff/index.html) diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.build.js new file mode 100644 index 00000000..e786e79c --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.build.js @@ -0,0 +1,8 @@ +export default { + getURL: (version) => `https://download.osgeo.org/libtiff/tiff-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: () => [ + '-Dtiff-tools=OFF', '-Dtiff-tests=OFF', '-Dtiff-contrib=OFF', + '-Dtiff-docs=OFF', '-Dld-version-script=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.config.js new file mode 100644 index 00000000..98114ebd --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/cppjs.config.js @@ -0,0 +1,22 @@ +import zlibWasm from '@cpp.js/package-zlib-wasm/cppjs.config.js'; + +export default { + dependencies: [ + zlibWasm, + ], + general: { + name: 'tiff' + }, + export: { + type: 'cmake', + libName: [ + 'tiff', + 'tiffxx' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/package.json new file mode 100644 index 00000000..ccd05126 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm/package.json @@ -0,0 +1,31 @@ +{ + "name": "@cpp.js/package-tiff-wasm", + "version": "1.0.0", + "nativeVersion": "4.7.0", + "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "dependencies": { + "@cpp.js/package-zlib-wasm": "workspace:^" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/.npmignore b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-tiff/CHANGELOG.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-tiff/CHANGELOG.md rename to cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/LICENSE b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/LICENSE new file mode 100644 index 00000000..6833704e --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/LICENSE @@ -0,0 +1,9 @@ + +Copyright © 1988-1997 Sam Leffler +Copyright © 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/README.md b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/README.md new file mode 100644 index 00000000..a1e5023f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-tiff +**Precompiled tiff library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-tiff +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import tiff from '@cpp.js/package-tiff/cppjs.config.js'; + +export default { + dependencies: [ ++ tiff + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the tiff in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(TIFFGetVersion()); +} +``` + +## License +This project includes the precompiled tiff library, which is distributed under the [libtiff License](https://libtiff.gitlab.io/libtiff/project/license.html). + +Tiff Homepage: [https://libtiff.gitlab.io/libtiff/index.html](https://libtiff.gitlab.io/libtiff/index.html) diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs-package-tiff.podspec b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs-package-tiff.podspec new file mode 100644 index 00000000..9174e85d --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs-package-tiff.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "tiff" + s.name = "cppjs-package-tiff" + s.version = package["nativeVersion"] + s.summary = "The LibTIFF software provides support for the Tag Image File Format (TIFF), a widely used format for storing image data." + s.homepage = "https://libtiff.gitlab.io/libtiff/index.html" + s.author = "Tiff Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'z.xcframework', 'tiff.xcframework', 'tiffxx.xcframework' +end diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.build.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.build.js new file mode 100644 index 00000000..e786e79c --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.build.js @@ -0,0 +1,8 @@ +export default { + getURL: (version) => `https://download.osgeo.org/libtiff/tiff-${version}.tar.gz`, + buildType: 'cmake', + getBuildParams: () => [ + '-Dtiff-tools=OFF', '-Dtiff-tests=OFF', '-Dtiff-contrib=OFF', + '-Dtiff-docs=OFF', '-Dld-version-script=OFF', + ], +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.config.js b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.config.js new file mode 100644 index 00000000..e679111f --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/cppjs.config.js @@ -0,0 +1,14 @@ +import tiffWasm from '@cpp.js/package-tiff-wasm/cppjs.config.js'; +import tiffAndroid from '@cpp.js/package-tiff-android/cppjs.config.js'; +import tiffIos from '@cpp.js/package-tiff-ios/cppjs.config.js'; + +export default { + dependencies: [ + tiffWasm, + tiffAndroid, + tiffIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/package.json b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/package.json new file mode 100644 index 00000000..3d084381 --- /dev/null +++ b/cppjs-packages/cppjs-package-tiff/cppjs-package-tiff/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-tiff", + "version": "1.0.0", + "nativeVersion": "4.7.0", + "description": "This package provides the Tiff library compiled with Cpp.js, enabling fast and efficient image processing using the TIFF format. It is built with Cpp.js to provide cross-platform support, leveraging both WebAssembly (WASM) for web applications and native code for mobile platforms. Ideal for developers looking to handle TIFF images with high performance in JavaScript environments.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-tiff#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "libtiff", + "keywords": [ + "tiff", + "libtiff", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-tiff-wasm": "workspace:^", + "@cpp.js/package-tiff-android": "workspace:^", + "@cpp.js/package-tiff-ios": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-webp/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-webp/LICENSE rename to cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/LICENSE diff --git a/packages/cppjs-package-webp/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/README.md similarity index 100% rename from packages/cppjs-package-webp/README.md rename to cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/README.md diff --git a/packages/cppjs-package-webp/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-webp/cppjs.build.js rename to cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/cppjs.build.js diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/cppjs.config.js new file mode 100644 index 00000000..5333e7dd --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'webp' + }, + export: { + type: 'cmake', + libName: [ + 'webp', + 'sharpyuv' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/package.json new file mode 100644 index 00000000..d5567441 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-webp-android-multithread", + "version": "1.0.0", + "nativeVersion": "1.5.0", + "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "BSD-3-Clause", + "keywords": [ + "webp", + "libwebp", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/LICENSE new file mode 100644 index 00000000..e3d95e8a --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, 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 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. diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/README.md new file mode 100644 index 00000000..408b96c3 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-webp +**Precompiled webp library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-webp +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import webp from '@cpp.js/package-webp/cppjs.config.js'; + +export default { + dependencies: [ ++ webp + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the webp in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::to_string(WebPGetDecoderVersion()); +} +``` + +## License +This project includes the precompiled webp library, which is distributed under the [BSD 3-Clause License](https://chromium.googlesource.com/webm/libwebp/+/refs/heads/main/COPYING). + +WebP Homepage: [https://developers.google.com/speed/webp](https://developers.google.com/speed/webp) diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.build.js new file mode 100644 index 00000000..1b366732 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.config.js new file mode 100644 index 00000000..e452f52e --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'webp' + }, + export: { + type: 'cmake', + libName: [ + 'webp', + 'sharpyuv' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/package.json new file mode 100644 index 00000000..21561d7e --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-android/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-webp-android", + "version": "1.0.0", + "nativeVersion": "1.5.0", + "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "BSD-3-Clause", + "keywords": [ + "webp", + "libwebp", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/LICENSE new file mode 100644 index 00000000..e3d95e8a --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, 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 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. diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/README.md new file mode 100644 index 00000000..408b96c3 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-webp +**Precompiled webp library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-webp +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import webp from '@cpp.js/package-webp/cppjs.config.js'; + +export default { + dependencies: [ ++ webp + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the webp in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::to_string(WebPGetDecoderVersion()); +} +``` + +## License +This project includes the precompiled webp library, which is distributed under the [BSD 3-Clause License](https://chromium.googlesource.com/webm/libwebp/+/refs/heads/main/COPYING). + +WebP Homepage: [https://developers.google.com/speed/webp](https://developers.google.com/speed/webp) diff --git a/packages/cppjs-package-webp/cppjs-package-webp.podspec b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs-package-webp.podspec similarity index 100% rename from packages/cppjs-package-webp/cppjs-package-webp.podspec rename to cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs-package-webp.podspec diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..1b366732 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..5333e7dd --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'webp' + }, + export: { + type: 'cmake', + libName: [ + 'webp', + 'sharpyuv' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/package.json new file mode 100644 index 00000000..69757d95 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-webp-ios-multithread", + "version": "1.0.0", + "nativeVersion": "1.5.0", + "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "BSD-3-Clause", + "keywords": [ + "webp", + "libwebp", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/LICENSE new file mode 100644 index 00000000..e3d95e8a --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, 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 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. diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/README.md new file mode 100644 index 00000000..408b96c3 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-webp +**Precompiled webp library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-webp +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import webp from '@cpp.js/package-webp/cppjs.config.js'; + +export default { + dependencies: [ ++ webp + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the webp in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::to_string(WebPGetDecoderVersion()); +} +``` + +## License +This project includes the precompiled webp library, which is distributed under the [BSD 3-Clause License](https://chromium.googlesource.com/webm/libwebp/+/refs/heads/main/COPYING). + +WebP Homepage: [https://developers.google.com/speed/webp](https://developers.google.com/speed/webp) diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs-package-webp.podspec b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs-package-webp.podspec new file mode 100644 index 00000000..7f4cc26b --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs-package-webp.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "webp" + s.name = "cppjs-package-webp" + s.version = package["nativeVersion"] + s.summary = "WebP codec is a library to encode and decode images in WebP format." + s.homepage = "https://developers.google.com/speed/webp" + s.author = "Webp Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'webp.xcframework', 'sharpyuv.xcframework' +end diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.build.js new file mode 100644 index 00000000..1b366732 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.config.js new file mode 100644 index 00000000..e452f52e --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'webp' + }, + export: { + type: 'cmake', + libName: [ + 'webp', + 'sharpyuv' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/packages/cppjs-package-webp/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/package.json similarity index 83% rename from packages/cppjs-package-webp/package.json rename to cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/package.json index 7edad782..2a477c82 100644 --- a/packages/cppjs-package-webp/package.json +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios/package.json @@ -1,28 +1,28 @@ { - "name": "@cpp.js/package-webp", + "name": "@cpp.js/package-webp-ios", "version": "1.0.0", "nativeVersion": "1.5.0", "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", "repository": "https://github.com/bugra9/cpp.js.git", - "license": "BSD-3-Clause", "type": "module", - "scripts": { - "build": "cppjs build", - "build:wasm": "cppjs build -p WebAssembly", - "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", - "prepublishOnly": "cppjs build" - }, - "devDependencies": { - "cpp.js": "workspace:^" - }, + "license": "BSD-3-Clause", "keywords": [ "webp", "libwebp", "cpp.js-package", "webassembly", "react-native" - ] + ], + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } } diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/LICENSE new file mode 100644 index 00000000..e3d95e8a --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, 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 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. diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/README.md new file mode 100644 index 00000000..408b96c3 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-webp +**Precompiled webp library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-webp +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import webp from '@cpp.js/package-webp/cppjs.config.js'; + +export default { + dependencies: [ ++ webp + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the webp in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::to_string(WebPGetDecoderVersion()); +} +``` + +## License +This project includes the precompiled webp library, which is distributed under the [BSD 3-Clause License](https://chromium.googlesource.com/webm/libwebp/+/refs/heads/main/COPYING). + +WebP Homepage: [https://developers.google.com/speed/webp](https://developers.google.com/speed/webp) diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.build.js new file mode 100644 index 00000000..1b366732 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.config.js new file mode 100644 index 00000000..6c54a481 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import webpWasmMultithread from '@cpp.js/package-webp-wasm-multithread/cppjs.config.js'; +import webpAndroidMultithread from '@cpp.js/package-webp-android-multithread/cppjs.config.js'; +import webpIosMultithread from '@cpp.js/package-webp-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + webpWasmMultithread, + webpAndroidMultithread, + webpIosMultithread, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/package.json new file mode 100644 index 00000000..6a65f57e --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-webp-multithread", + "version": "1.0.0", + "nativeVersion": "1.5.0", + "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "BSD-3-Clause", + "keywords": [ + "webp", + "libwebp", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-webp-wasm-multithread": "workspace:^", + "@cpp.js/package-webp-android-multithread": "workspace:^", + "@cpp.js/package-webp-ios-multithread": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/LICENSE new file mode 100644 index 00000000..e3d95e8a --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, 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 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. diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/README.md new file mode 100644 index 00000000..408b96c3 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-webp +**Precompiled webp library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-webp +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import webp from '@cpp.js/package-webp/cppjs.config.js'; + +export default { + dependencies: [ ++ webp + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the webp in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::to_string(WebPGetDecoderVersion()); +} +``` + +## License +This project includes the precompiled webp library, which is distributed under the [BSD 3-Clause License](https://chromium.googlesource.com/webm/libwebp/+/refs/heads/main/COPYING). + +WebP Homepage: [https://developers.google.com/speed/webp](https://developers.google.com/speed/webp) diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..1b366732 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..5333e7dd --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/cppjs.config.js @@ -0,0 +1,20 @@ +export default { + general: { + name: 'webp' + }, + export: { + type: 'cmake', + libName: [ + 'webp', + 'sharpyuv' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/package.json new file mode 100644 index 00000000..ae9eb35b --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-webp-wasm-multithread", + "version": "1.0.0", + "nativeVersion": "1.5.0", + "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "BSD-3-Clause", + "keywords": [ + "webp", + "libwebp", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/LICENSE new file mode 100644 index 00000000..e3d95e8a --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, 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 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. diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/README.md new file mode 100644 index 00000000..408b96c3 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-webp +**Precompiled webp library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-webp +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import webp from '@cpp.js/package-webp/cppjs.config.js'; + +export default { + dependencies: [ ++ webp + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the webp in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::to_string(WebPGetDecoderVersion()); +} +``` + +## License +This project includes the precompiled webp library, which is distributed under the [BSD 3-Clause License](https://chromium.googlesource.com/webm/libwebp/+/refs/heads/main/COPYING). + +WebP Homepage: [https://developers.google.com/speed/webp](https://developers.google.com/speed/webp) diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.build.js new file mode 100644 index 00000000..1b366732 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.config.js new file mode 100644 index 00000000..e452f52e --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/cppjs.config.js @@ -0,0 +1,17 @@ +export default { + general: { + name: 'webp' + }, + export: { + type: 'cmake', + libName: [ + 'webp', + 'sharpyuv' + ] + }, + paths: { + config: import.meta.url, + base: '../..', + output: 'dist' + } +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/package.json new file mode 100644 index 00000000..6f48b5bd --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cpp.js/package-webp-wasm", + "version": "1.0.0", + "nativeVersion": "1.5.0", + "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "BSD-3-Clause", + "keywords": [ + "webp", + "libwebp", + "cpp.js-package", + "webassembly", + "react-native" + ], + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS" + }, + "devDependencies": { + "cpp.js": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp/.npmignore b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-webp/CHANGELOG.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/CHANGELOG.md similarity index 100% rename from packages/cppjs-package-webp/CHANGELOG.md rename to cppjs-packages/cppjs-package-webp/cppjs-package-webp/CHANGELOG.md diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp/LICENSE b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/LICENSE new file mode 100644 index 00000000..e3d95e8a --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, 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 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. diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp/README.md b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/README.md new file mode 100644 index 00000000..408b96c3 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-webp +**Precompiled webp library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-webp +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import webp from '@cpp.js/package-webp/cppjs.config.js'; + +export default { + dependencies: [ ++ webp + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the webp in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::to_string(WebPGetDecoderVersion()); +} +``` + +## License +This project includes the precompiled webp library, which is distributed under the [BSD 3-Clause License](https://chromium.googlesource.com/webm/libwebp/+/refs/heads/main/COPYING). + +WebP Homepage: [https://developers.google.com/speed/webp](https://developers.google.com/speed/webp) diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs-package-webp.podspec b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs-package-webp.podspec new file mode 100644 index 00000000..7f4cc26b --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs-package-webp.podspec @@ -0,0 +1,13 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "webp" + s.name = "cppjs-package-webp" + s.version = package["nativeVersion"] + s.summary = "WebP codec is a library to encode and decode images in WebP format." + s.homepage = "https://developers.google.com/speed/webp" + s.author = "Webp Authors" + s.source = { :http => "https://cpp.js.org" } + s.vendored_frameworks = 'webp.xcframework', 'sharpyuv.xcframework' +end diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.build.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.build.js new file mode 100644 index 00000000..1b366732 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.build.js @@ -0,0 +1,15 @@ +const platformBuild = { + 'Emscripten-x86_64': ['--enable-shared=no', '--host=wasm32-unknown-emscripten'], + 'Android-arm64-v8a': ['--enable-static=no', '--host=aarch64-linux-android'], + 'Android-x86_64': ['--enable-static=no', '--host=x86_64-linux-android'], + 'iOS-iphoneos': ['--enable-shared=no', '--host=arm-apple-darwin'], + 'iOS-iphonesimulator': ['--enable-shared=no', '--host=x86_64-apple-darwin'], +}; + +export default { + getURL: (version) => `https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz`, + buildType: 'configure', + getBuildParams: (platform) => [ + ...(platformBuild[platform] || []), + ], +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.config.js b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.config.js new file mode 100644 index 00000000..44fa91b8 --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/cppjs.config.js @@ -0,0 +1,14 @@ +import webpWasm from '@cpp.js/package-webp-wasm/cppjs.config.js'; +import webpAndroid from '@cpp.js/package-webp-android/cppjs.config.js'; +import webpIos from '@cpp.js/package-webp-ios/cppjs.config.js'; + +export default { + dependencies: [ + webpWasm, + webpAndroid, + webpIos, + ], + paths: { + config: import.meta.url + } +}; diff --git a/cppjs-packages/cppjs-package-webp/cppjs-package-webp/package.json b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/package.json new file mode 100644 index 00000000..ef883cda --- /dev/null +++ b/cppjs-packages/cppjs-package-webp/cppjs-package-webp/package.json @@ -0,0 +1,23 @@ +{ + "name": "@cpp.js/package-webp", + "version": "1.0.0", + "nativeVersion": "1.5.0", + "description": "This package provides a WebP library compiled with Cpp.js, enabling seamless usage of WebP functionalities in JavaScript, WebAssembly and React Native projects. It supports efficient image processing for web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-webp#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "type": "module", + "license": "BSD-3-Clause", + "keywords": [ + "webp", + "libwebp", + "cpp.js-package", + "webassembly", + "react-native" + ], + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-webp-wasm": "workspace:^", + "@cpp.js/package-webp-android": "workspace:^", + "@cpp.js/package-webp-ios": "workspace:^" + } +} diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/.npmignore b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/CHANGELOG.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/CHANGELOG.md new file mode 100644 index 00000000..463f6a3c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-zlib-android + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/packages/cppjs-package-zlib/LICENSE b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/LICENSE similarity index 100% rename from packages/cppjs-package-zlib/LICENSE rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/LICENSE diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/README.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/README.md new file mode 100644 index 00000000..33552457 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-zlib-android +**Precompiled zlib library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-zlib +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + dependencies: [ ++ zlib + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the zlib in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(zlibVersion()); +} +``` + +## License +This project includes the precompiled zlib library, which is distributed under the [zlib License](https://zlib.net/zlib_license.html). + +Zlib Homepage: [https://zlib.net/](https://zlib.net/) diff --git a/packages/cppjs-package-zlib/assets/CMakeLists.txt b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/assets/CMakeLists.txt similarity index 100% rename from packages/cppjs-package-zlib/assets/CMakeLists.txt rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/assets/CMakeLists.txt diff --git a/packages/cppjs-package-zlib/cppjs.build.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/cppjs.build.js similarity index 100% rename from packages/cppjs-package-zlib/cppjs.build.js rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/cppjs.build.js diff --git a/packages/cppjs-package-geos/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/cppjs.config.js similarity index 66% rename from packages/cppjs-package-geos/cppjs.config.js rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/cppjs.config.js index 80f76b25..83c90455 100644 --- a/packages/cppjs-package-geos/cppjs.config.js +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/cppjs.config.js @@ -1,14 +1,15 @@ export default { general: { - name: 'geos', + name: 'z', }, export: { type: 'cmake', - libName: ['geos', 'geos_c'], + }, + build: { + usePthread: true, }, paths: { config: import.meta.url, - base: '../..', output: 'dist', }, }; diff --git a/packages/cppjs-package-zlib/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/package.json similarity index 74% rename from packages/cppjs-package-zlib/package.json rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/package.json index 96f37478..0129b22d 100644 --- a/packages/cppjs-package-zlib/package.json +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread/package.json @@ -1,6 +1,6 @@ { - "name": "@cpp.js/package-zlib", - "version": "1.0.0", + "name": "@cpp.js/package-zlib-android-multithread", + "version": "2.0.0", "nativeVersion": "1.3.1", "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", @@ -8,11 +8,8 @@ "license": "Zlib", "type": "module", "scripts": { - "build": "cppjs build", - "build:wasm": "cppjs build -p WebAssembly", - "build:android": "cppjs build -p Android", - "build:ios": "cppjs build -p iOS", - "clear": "rm -rf .cppjs dist *.xcframework", + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist", "prepublishOnly": "cppjs build" }, "devDependencies": { diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/.npmignore b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/CHANGELOG.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/CHANGELOG.md new file mode 100644 index 00000000..463f6a3c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-zlib-android + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/LICENSE b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/LICENSE new file mode 100644 index 00000000..b41ce8db --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/LICENSE @@ -0,0 +1,23 @@ +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.3.1, January 22nd, 2024 + + Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler + + 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. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/README.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/README.md new file mode 100644 index 00000000..33552457 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-zlib-android +**Precompiled zlib library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-zlib +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + dependencies: [ ++ zlib + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the zlib in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(zlibVersion()); +} +``` + +## License +This project includes the precompiled zlib library, which is distributed under the [zlib License](https://zlib.net/zlib_license.html). + +Zlib Homepage: [https://zlib.net/](https://zlib.net/) diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/assets/CMakeLists.txt b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/assets/CMakeLists.txt new file mode 100644 index 00000000..3d709586 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/assets/CMakeLists.txt @@ -0,0 +1,234 @@ +cmake_minimum_required(VERSION 2.4.4...3.15.0) +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +project(zlib C) + +set(VERSION "1.3.1") + +option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON) + +set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") +set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") +set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") +set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") +set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + +include(CheckTypeSize) +include(CheckFunctionExists) +include(CheckIncludeFile) +include(CheckCSourceCompiles) +enable_testing() + +check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(stdint.h HAVE_STDINT_H) +check_include_file(stddef.h HAVE_STDDEF_H) + +# +# Check to see if we have large file support +# +set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) +# We add these other definitions here because CheckTypeSize.cmake +# in CMake 2.4.x does not automatically do so and we want +# compatibility with CMake 2.4.x. +if(HAVE_SYS_TYPES_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) +endif() +if(HAVE_STDINT_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) +endif() +if(HAVE_STDDEF_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) +endif() +check_type_size(off64_t OFF64_T) +if(HAVE_OFF64_T) + add_definitions(-D_LARGEFILE64_SOURCE=1) +endif() +set(CMAKE_REQUIRED_DEFINITIONS) # clear variable + +# +# Check for fseeko +# +check_function_exists(fseeko HAVE_FSEEKO) +if(NOT HAVE_FSEEKO) + add_definitions(-DNO_FSEEKO) +endif() + +# +# Check for unistd.h +# +check_include_file(unistd.h Z_HAVE_UNISTD_H) + +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + # If we're doing an out of source build and the user has a zconf.h + # in their source tree... + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) + message(STATUS "Renaming") + message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h") + message(STATUS "to 'zconf.h.included' because this file is included with zlib") + message(STATUS "but CMake generates it automatically in the build directory.") + file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) + endif() +endif() + +set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein + ${ZLIB_PC} @ONLY) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + + +#============================================================================ +# zlib +#============================================================================ + +set(ZLIB_PUBLIC_HDRS + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h + zlib.h +) +set(ZLIB_PRIVATE_HDRS + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zutil.h +) +set(ZLIB_SRCS + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + inflate.c + infback.c + inftrees.c + inffast.c + trees.c + uncompr.c + zutil.c +) + +if(NOT MINGW) + set(ZLIB_DLL_SRCS + win32/zlib1.rc # If present will override custom build rule below. + ) +endif() + +# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION +file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) +string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" + "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) + +if(MINGW) + # This gets us DLL resource information when compiling on MinGW. + if(NOT CMAKE_RC_COMPILER) + set(CMAKE_RC_COMPILER windres.exe) + endif() + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + COMMAND ${CMAKE_RC_COMPILER} + -D GCC_WINDRES + -I ${CMAKE_CURRENT_SOURCE_DIR} + -I ${CMAKE_CURRENT_BINARY_DIR} + -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) + set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) +endif(MINGW) + +add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) +set_target_properties(zlib PROPERTIES SOVERSION 1) + +if(NOT CYGWIN) + # This property causes shared libraries on Linux to have the full version + # encoded into their final filename. We disable this on Cygwin because + # it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll + # seems to be the default. + # + # This has no effect with MSVC, on that platform the version info for + # the DLL comes from the resource file win32/zlib1.rc + set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION}) +endif() + +if(UNIX) + # On unix-like platforms the library is almost always called libz + if (BUILD_TYPE STREQUAL "SHARED") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z2) + elseif(BUILD_TYPE STREQUAL "STATIC") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z2) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) + else() + set_target_properties(zlib PROPERTIES OUTPUT_NAME a) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME b) + endif() + if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) + set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") + endif() +elseif(BUILD_SHARED_LIBS AND WIN32) + # Creates zlib1.dll when building shared library version + set_target_properties(zlib PROPERTIES SUFFIX "1.dll") +endif() + +if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) + if (BUILD_TYPE STREQUAL "SHARED") + install(TARGETS zlib + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + elseif(BUILD_TYPE STREQUAL "STATIC") + install(TARGETS zlibstatic + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + endif() +endif() +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}") +endif() + +#============================================================================ +# Example binaries +#============================================================================ +if(ZLIB_BUILD_EXAMPLES) + add_executable(example test/example.c) + target_link_libraries(example zlib) + add_test(example example) + + add_executable(minigzip test/minigzip.c) + target_link_libraries(minigzip zlib) + + if(HAVE_OFF64_T) + add_executable(example64 test/example.c) + target_link_libraries(example64 zlib) + set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + add_test(example64 example64) + + add_executable(minigzip64 test/minigzip.c) + target_link_libraries(minigzip64 zlib) + set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + endif() +endif() diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/cppjs.build.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/cppjs.build.js new file mode 100644 index 00000000..b55bcd3c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/cppjs.build.js @@ -0,0 +1,6 @@ +export default { + getURL: (version) => `https://zlib.net/zlib-${version}.tar.gz`, + copyToSource: { 'assets/CMakeLists.txt': 'CMakeLists.txt' }, + buildType: 'cmake', + getBuildParams: () => ['-DZLIB_BUILD_EXAMPLES=OFF'], +}; diff --git a/packages/cppjs-package-zlib/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/cppjs.config.js similarity index 100% rename from packages/cppjs-package-zlib/cppjs.config.js rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/cppjs.config.js diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/package.json new file mode 100644 index 00000000..d6a04a13 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android/package.json @@ -0,0 +1,26 @@ +{ + "name": "@cpp.js/package-zlib-android", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "scripts": { + "build": "cppjs build -p Android", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/.npmignore b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/CHANGELOG.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/CHANGELOG.md new file mode 100644 index 00000000..cbd07493 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-zlib-ios-multithread + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/LICENSE b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/LICENSE new file mode 100644 index 00000000..b41ce8db --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/LICENSE @@ -0,0 +1,23 @@ +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.3.1, January 22nd, 2024 + + Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler + + 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. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/README.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/README.md new file mode 100644 index 00000000..8a3eccf3 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-zlib-ios-multithread +**Precompiled zlib library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-zlib +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + dependencies: [ ++ zlib + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the zlib in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(zlibVersion()); +} +``` + +## License +This project includes the precompiled zlib library, which is distributed under the [zlib License](https://zlib.net/zlib_license.html). + +Zlib Homepage: [https://zlib.net/](https://zlib.net/) diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/assets/CMakeLists.txt b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/assets/CMakeLists.txt new file mode 100644 index 00000000..3d709586 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/assets/CMakeLists.txt @@ -0,0 +1,234 @@ +cmake_minimum_required(VERSION 2.4.4...3.15.0) +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +project(zlib C) + +set(VERSION "1.3.1") + +option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON) + +set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") +set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") +set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") +set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") +set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + +include(CheckTypeSize) +include(CheckFunctionExists) +include(CheckIncludeFile) +include(CheckCSourceCompiles) +enable_testing() + +check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(stdint.h HAVE_STDINT_H) +check_include_file(stddef.h HAVE_STDDEF_H) + +# +# Check to see if we have large file support +# +set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) +# We add these other definitions here because CheckTypeSize.cmake +# in CMake 2.4.x does not automatically do so and we want +# compatibility with CMake 2.4.x. +if(HAVE_SYS_TYPES_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) +endif() +if(HAVE_STDINT_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) +endif() +if(HAVE_STDDEF_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) +endif() +check_type_size(off64_t OFF64_T) +if(HAVE_OFF64_T) + add_definitions(-D_LARGEFILE64_SOURCE=1) +endif() +set(CMAKE_REQUIRED_DEFINITIONS) # clear variable + +# +# Check for fseeko +# +check_function_exists(fseeko HAVE_FSEEKO) +if(NOT HAVE_FSEEKO) + add_definitions(-DNO_FSEEKO) +endif() + +# +# Check for unistd.h +# +check_include_file(unistd.h Z_HAVE_UNISTD_H) + +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + # If we're doing an out of source build and the user has a zconf.h + # in their source tree... + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) + message(STATUS "Renaming") + message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h") + message(STATUS "to 'zconf.h.included' because this file is included with zlib") + message(STATUS "but CMake generates it automatically in the build directory.") + file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) + endif() +endif() + +set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein + ${ZLIB_PC} @ONLY) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + + +#============================================================================ +# zlib +#============================================================================ + +set(ZLIB_PUBLIC_HDRS + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h + zlib.h +) +set(ZLIB_PRIVATE_HDRS + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zutil.h +) +set(ZLIB_SRCS + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + inflate.c + infback.c + inftrees.c + inffast.c + trees.c + uncompr.c + zutil.c +) + +if(NOT MINGW) + set(ZLIB_DLL_SRCS + win32/zlib1.rc # If present will override custom build rule below. + ) +endif() + +# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION +file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) +string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" + "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) + +if(MINGW) + # This gets us DLL resource information when compiling on MinGW. + if(NOT CMAKE_RC_COMPILER) + set(CMAKE_RC_COMPILER windres.exe) + endif() + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + COMMAND ${CMAKE_RC_COMPILER} + -D GCC_WINDRES + -I ${CMAKE_CURRENT_SOURCE_DIR} + -I ${CMAKE_CURRENT_BINARY_DIR} + -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) + set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) +endif(MINGW) + +add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) +set_target_properties(zlib PROPERTIES SOVERSION 1) + +if(NOT CYGWIN) + # This property causes shared libraries on Linux to have the full version + # encoded into their final filename. We disable this on Cygwin because + # it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll + # seems to be the default. + # + # This has no effect with MSVC, on that platform the version info for + # the DLL comes from the resource file win32/zlib1.rc + set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION}) +endif() + +if(UNIX) + # On unix-like platforms the library is almost always called libz + if (BUILD_TYPE STREQUAL "SHARED") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z2) + elseif(BUILD_TYPE STREQUAL "STATIC") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z2) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) + else() + set_target_properties(zlib PROPERTIES OUTPUT_NAME a) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME b) + endif() + if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) + set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") + endif() +elseif(BUILD_SHARED_LIBS AND WIN32) + # Creates zlib1.dll when building shared library version + set_target_properties(zlib PROPERTIES SUFFIX "1.dll") +endif() + +if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) + if (BUILD_TYPE STREQUAL "SHARED") + install(TARGETS zlib + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + elseif(BUILD_TYPE STREQUAL "STATIC") + install(TARGETS zlibstatic + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + endif() +endif() +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}") +endif() + +#============================================================================ +# Example binaries +#============================================================================ +if(ZLIB_BUILD_EXAMPLES) + add_executable(example test/example.c) + target_link_libraries(example zlib) + add_test(example example) + + add_executable(minigzip test/minigzip.c) + target_link_libraries(minigzip zlib) + + if(HAVE_OFF64_T) + add_executable(example64 test/example.c) + target_link_libraries(example64 zlib) + set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + add_test(example64 example64) + + add_executable(minigzip64 test/minigzip.c) + target_link_libraries(minigzip64 zlib) + set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + endif() +endif() diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.build.js new file mode 100644 index 00000000..b55bcd3c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.build.js @@ -0,0 +1,6 @@ +export default { + getURL: (version) => `https://zlib.net/zlib-${version}.tar.gz`, + copyToSource: { 'assets/CMakeLists.txt': 'CMakeLists.txt' }, + buildType: 'cmake', + getBuildParams: () => ['-DZLIB_BUILD_EXAMPLES=OFF'], +}; diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.config.js new file mode 100644 index 00000000..83c90455 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/cppjs.config.js @@ -0,0 +1,15 @@ +export default { + general: { + name: 'z', + }, + export: { + type: 'cmake', + }, + build: { + usePthread: true, + }, + paths: { + config: import.meta.url, + output: 'dist', + }, +}; diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/package.json new file mode 100644 index 00000000..047c2da8 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread/package.json @@ -0,0 +1,26 @@ +{ + "name": "@cpp.js/package-zlib-ios-multithread", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/.npmignore b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/CHANGELOG.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/CHANGELOG.md new file mode 100644 index 00000000..06db7acc --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-zlib-wasm + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/LICENSE b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/LICENSE new file mode 100644 index 00000000..b41ce8db --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/LICENSE @@ -0,0 +1,23 @@ +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.3.1, January 22nd, 2024 + + Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler + + 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. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/packages/cppjs-package-zlib/README.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/README.md similarity index 98% rename from packages/cppjs-package-zlib/README.md rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/README.md index b93c41a7..82d7fd82 100644 --- a/packages/cppjs-package-zlib/README.md +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/README.md @@ -1,4 +1,4 @@ -# @cpp.js/package-zlib +# @cpp.js/package-zlib-ios **Precompiled zlib library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/assets/CMakeLists.txt b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/assets/CMakeLists.txt new file mode 100644 index 00000000..3d709586 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/assets/CMakeLists.txt @@ -0,0 +1,234 @@ +cmake_minimum_required(VERSION 2.4.4...3.15.0) +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +project(zlib C) + +set(VERSION "1.3.1") + +option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON) + +set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") +set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") +set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") +set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") +set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + +include(CheckTypeSize) +include(CheckFunctionExists) +include(CheckIncludeFile) +include(CheckCSourceCompiles) +enable_testing() + +check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(stdint.h HAVE_STDINT_H) +check_include_file(stddef.h HAVE_STDDEF_H) + +# +# Check to see if we have large file support +# +set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) +# We add these other definitions here because CheckTypeSize.cmake +# in CMake 2.4.x does not automatically do so and we want +# compatibility with CMake 2.4.x. +if(HAVE_SYS_TYPES_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) +endif() +if(HAVE_STDINT_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) +endif() +if(HAVE_STDDEF_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) +endif() +check_type_size(off64_t OFF64_T) +if(HAVE_OFF64_T) + add_definitions(-D_LARGEFILE64_SOURCE=1) +endif() +set(CMAKE_REQUIRED_DEFINITIONS) # clear variable + +# +# Check for fseeko +# +check_function_exists(fseeko HAVE_FSEEKO) +if(NOT HAVE_FSEEKO) + add_definitions(-DNO_FSEEKO) +endif() + +# +# Check for unistd.h +# +check_include_file(unistd.h Z_HAVE_UNISTD_H) + +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + # If we're doing an out of source build and the user has a zconf.h + # in their source tree... + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) + message(STATUS "Renaming") + message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h") + message(STATUS "to 'zconf.h.included' because this file is included with zlib") + message(STATUS "but CMake generates it automatically in the build directory.") + file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) + endif() +endif() + +set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein + ${ZLIB_PC} @ONLY) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + + +#============================================================================ +# zlib +#============================================================================ + +set(ZLIB_PUBLIC_HDRS + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h + zlib.h +) +set(ZLIB_PRIVATE_HDRS + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zutil.h +) +set(ZLIB_SRCS + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + inflate.c + infback.c + inftrees.c + inffast.c + trees.c + uncompr.c + zutil.c +) + +if(NOT MINGW) + set(ZLIB_DLL_SRCS + win32/zlib1.rc # If present will override custom build rule below. + ) +endif() + +# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION +file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) +string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" + "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) + +if(MINGW) + # This gets us DLL resource information when compiling on MinGW. + if(NOT CMAKE_RC_COMPILER) + set(CMAKE_RC_COMPILER windres.exe) + endif() + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + COMMAND ${CMAKE_RC_COMPILER} + -D GCC_WINDRES + -I ${CMAKE_CURRENT_SOURCE_DIR} + -I ${CMAKE_CURRENT_BINARY_DIR} + -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) + set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) +endif(MINGW) + +add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) +set_target_properties(zlib PROPERTIES SOVERSION 1) + +if(NOT CYGWIN) + # This property causes shared libraries on Linux to have the full version + # encoded into their final filename. We disable this on Cygwin because + # it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll + # seems to be the default. + # + # This has no effect with MSVC, on that platform the version info for + # the DLL comes from the resource file win32/zlib1.rc + set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION}) +endif() + +if(UNIX) + # On unix-like platforms the library is almost always called libz + if (BUILD_TYPE STREQUAL "SHARED") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z2) + elseif(BUILD_TYPE STREQUAL "STATIC") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z2) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) + else() + set_target_properties(zlib PROPERTIES OUTPUT_NAME a) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME b) + endif() + if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) + set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") + endif() +elseif(BUILD_SHARED_LIBS AND WIN32) + # Creates zlib1.dll when building shared library version + set_target_properties(zlib PROPERTIES SUFFIX "1.dll") +endif() + +if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) + if (BUILD_TYPE STREQUAL "SHARED") + install(TARGETS zlib + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + elseif(BUILD_TYPE STREQUAL "STATIC") + install(TARGETS zlibstatic + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + endif() +endif() +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}") +endif() + +#============================================================================ +# Example binaries +#============================================================================ +if(ZLIB_BUILD_EXAMPLES) + add_executable(example test/example.c) + target_link_libraries(example zlib) + add_test(example example) + + add_executable(minigzip test/minigzip.c) + target_link_libraries(minigzip zlib) + + if(HAVE_OFF64_T) + add_executable(example64 test/example.c) + target_link_libraries(example64 zlib) + set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + add_test(example64 example64) + + add_executable(minigzip64 test/minigzip.c) + target_link_libraries(minigzip64 zlib) + set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + endif() +endif() diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/cppjs.build.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/cppjs.build.js new file mode 100644 index 00000000..b55bcd3c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/cppjs.build.js @@ -0,0 +1,6 @@ +export default { + getURL: (version) => `https://zlib.net/zlib-${version}.tar.gz`, + copyToSource: { 'assets/CMakeLists.txt': 'CMakeLists.txt' }, + buildType: 'cmake', + getBuildParams: () => ['-DZLIB_BUILD_EXAMPLES=OFF'], +}; diff --git a/packages/cppjs-package-expat/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/cppjs.config.js similarity index 87% rename from packages/cppjs-package-expat/cppjs.config.js rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/cppjs.config.js index 2ea56df3..12c2cf98 100644 --- a/packages/cppjs-package-expat/cppjs.config.js +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/cppjs.config.js @@ -1,6 +1,6 @@ export default { general: { - name: 'expat', + name: 'z', }, export: { type: 'cmake', diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/package.json new file mode 100644 index 00000000..7ec5d1e2 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios/package.json @@ -0,0 +1,26 @@ +{ + "name": "@cpp.js/package-zlib-ios", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "scripts": { + "build": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/cppjs.config.js new file mode 100644 index 00000000..8a44954c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/cppjs.config.js @@ -0,0 +1,14 @@ +import zlibWasmMultithread from '@cpp.js/package-zlib-wasm-multithread/cppjs.config.js'; +import zlibAndroidMultithread from '@cpp.js/package-zlib-android-multithread/cppjs.config.js'; +import zlibIOSMultithread from '@cpp.js/package-zlib-ios-multithread/cppjs.config.js'; + +export default { + dependencies: [ + zlibWasmMultithread, + zlibAndroidMultithread, + zlibIOSMultithread + ], + paths: { + config: import.meta.url, + }, +}; diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/package.json new file mode 100644 index 00000000..e5b74de9 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread/package.json @@ -0,0 +1,24 @@ +{ + "name": "@cpp.js/package-zlib-multithread", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-zlib-wasm-multithread": "workspace:^", + "@cpp.js/package-zlib-android-multithread": "workspace:^", + "@cpp.js/package-zlib-ios-multithread": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/.npmignore b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/CHANGELOG.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/CHANGELOG.md new file mode 100644 index 00000000..200c8854 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-zlib-wasm-multithread + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/LICENSE b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/LICENSE new file mode 100644 index 00000000..b41ce8db --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/LICENSE @@ -0,0 +1,23 @@ +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.3.1, January 22nd, 2024 + + Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler + + 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. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/README.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/README.md new file mode 100644 index 00000000..75e16ca1 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-zlib-wasm-multithread +**Precompiled zlib library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-zlib +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + dependencies: [ ++ zlib + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the zlib in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(zlibVersion()); +} +``` + +## License +This project includes the precompiled zlib library, which is distributed under the [zlib License](https://zlib.net/zlib_license.html). + +Zlib Homepage: [https://zlib.net/](https://zlib.net/) diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/assets/CMakeLists.txt b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/assets/CMakeLists.txt new file mode 100644 index 00000000..3d709586 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/assets/CMakeLists.txt @@ -0,0 +1,234 @@ +cmake_minimum_required(VERSION 2.4.4...3.15.0) +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +project(zlib C) + +set(VERSION "1.3.1") + +option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON) + +set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") +set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") +set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") +set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") +set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + +include(CheckTypeSize) +include(CheckFunctionExists) +include(CheckIncludeFile) +include(CheckCSourceCompiles) +enable_testing() + +check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(stdint.h HAVE_STDINT_H) +check_include_file(stddef.h HAVE_STDDEF_H) + +# +# Check to see if we have large file support +# +set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) +# We add these other definitions here because CheckTypeSize.cmake +# in CMake 2.4.x does not automatically do so and we want +# compatibility with CMake 2.4.x. +if(HAVE_SYS_TYPES_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) +endif() +if(HAVE_STDINT_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) +endif() +if(HAVE_STDDEF_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) +endif() +check_type_size(off64_t OFF64_T) +if(HAVE_OFF64_T) + add_definitions(-D_LARGEFILE64_SOURCE=1) +endif() +set(CMAKE_REQUIRED_DEFINITIONS) # clear variable + +# +# Check for fseeko +# +check_function_exists(fseeko HAVE_FSEEKO) +if(NOT HAVE_FSEEKO) + add_definitions(-DNO_FSEEKO) +endif() + +# +# Check for unistd.h +# +check_include_file(unistd.h Z_HAVE_UNISTD_H) + +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + # If we're doing an out of source build and the user has a zconf.h + # in their source tree... + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) + message(STATUS "Renaming") + message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h") + message(STATUS "to 'zconf.h.included' because this file is included with zlib") + message(STATUS "but CMake generates it automatically in the build directory.") + file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) + endif() +endif() + +set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein + ${ZLIB_PC} @ONLY) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + + +#============================================================================ +# zlib +#============================================================================ + +set(ZLIB_PUBLIC_HDRS + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h + zlib.h +) +set(ZLIB_PRIVATE_HDRS + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zutil.h +) +set(ZLIB_SRCS + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + inflate.c + infback.c + inftrees.c + inffast.c + trees.c + uncompr.c + zutil.c +) + +if(NOT MINGW) + set(ZLIB_DLL_SRCS + win32/zlib1.rc # If present will override custom build rule below. + ) +endif() + +# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION +file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) +string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" + "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) + +if(MINGW) + # This gets us DLL resource information when compiling on MinGW. + if(NOT CMAKE_RC_COMPILER) + set(CMAKE_RC_COMPILER windres.exe) + endif() + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + COMMAND ${CMAKE_RC_COMPILER} + -D GCC_WINDRES + -I ${CMAKE_CURRENT_SOURCE_DIR} + -I ${CMAKE_CURRENT_BINARY_DIR} + -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) + set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) +endif(MINGW) + +add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) +set_target_properties(zlib PROPERTIES SOVERSION 1) + +if(NOT CYGWIN) + # This property causes shared libraries on Linux to have the full version + # encoded into their final filename. We disable this on Cygwin because + # it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll + # seems to be the default. + # + # This has no effect with MSVC, on that platform the version info for + # the DLL comes from the resource file win32/zlib1.rc + set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION}) +endif() + +if(UNIX) + # On unix-like platforms the library is almost always called libz + if (BUILD_TYPE STREQUAL "SHARED") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z2) + elseif(BUILD_TYPE STREQUAL "STATIC") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z2) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) + else() + set_target_properties(zlib PROPERTIES OUTPUT_NAME a) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME b) + endif() + if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) + set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") + endif() +elseif(BUILD_SHARED_LIBS AND WIN32) + # Creates zlib1.dll when building shared library version + set_target_properties(zlib PROPERTIES SUFFIX "1.dll") +endif() + +if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) + if (BUILD_TYPE STREQUAL "SHARED") + install(TARGETS zlib + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + elseif(BUILD_TYPE STREQUAL "STATIC") + install(TARGETS zlibstatic + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + endif() +endif() +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}") +endif() + +#============================================================================ +# Example binaries +#============================================================================ +if(ZLIB_BUILD_EXAMPLES) + add_executable(example test/example.c) + target_link_libraries(example zlib) + add_test(example example) + + add_executable(minigzip test/minigzip.c) + target_link_libraries(minigzip zlib) + + if(HAVE_OFF64_T) + add_executable(example64 test/example.c) + target_link_libraries(example64 zlib) + set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + add_test(example64 example64) + + add_executable(minigzip64 test/minigzip.c) + target_link_libraries(minigzip64 zlib) + set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + endif() +endif() diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.build.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.build.js new file mode 100644 index 00000000..b55bcd3c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.build.js @@ -0,0 +1,6 @@ +export default { + getURL: (version) => `https://zlib.net/zlib-${version}.tar.gz`, + copyToSource: { 'assets/CMakeLists.txt': 'CMakeLists.txt' }, + buildType: 'cmake', + getBuildParams: () => ['-DZLIB_BUILD_EXAMPLES=OFF'], +}; diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.config.js new file mode 100644 index 00000000..83c90455 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/cppjs.config.js @@ -0,0 +1,15 @@ +export default { + general: { + name: 'z', + }, + export: { + type: 'cmake', + }, + build: { + usePthread: true, + }, + paths: { + config: import.meta.url, + output: 'dist', + }, +}; diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/package.json new file mode 100644 index 00000000..0c500f08 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread/package.json @@ -0,0 +1,26 @@ +{ + "name": "@cpp.js/package-zlib-wasm-multithread", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/.npmignore b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/CHANGELOG.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/CHANGELOG.md new file mode 100644 index 00000000..06db7acc --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/CHANGELOG.md @@ -0,0 +1,7 @@ +# @cpp.js/package-zlib-wasm + +## 2.0.0 + +### Major Changes + +- 🚀 first stable release diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/LICENSE b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/LICENSE new file mode 100644 index 00000000..b41ce8db --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/LICENSE @@ -0,0 +1,23 @@ +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.3.1, January 22nd, 2024 + + Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler + + 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. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/README.md b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/README.md new file mode 100644 index 00000000..86265e0c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/README.md @@ -0,0 +1,50 @@ +# @cpp.js/package-zlib-wasm +**Precompiled zlib library built with cpp.js for seamless integration in JavaScript, WebAssembly and React Native projects.** + + + NPM version + + + + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/package-zlib +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + dependencies: [ ++ zlib + ] + paths: { + config: import.meta.url, + } +}; +``` + +## Usage +Below are the steps to use the zlib in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return std::string(zlibVersion()); +} +``` + +## License +This project includes the precompiled zlib library, which is distributed under the [zlib License](https://zlib.net/zlib_license.html). + +Zlib Homepage: [https://zlib.net/](https://zlib.net/) diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/assets/CMakeLists.txt b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/assets/CMakeLists.txt new file mode 100644 index 00000000..3d709586 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/assets/CMakeLists.txt @@ -0,0 +1,234 @@ +cmake_minimum_required(VERSION 2.4.4...3.15.0) +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +project(zlib C) + +set(VERSION "1.3.1") + +option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON) + +set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") +set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") +set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") +set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") +set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + +include(CheckTypeSize) +include(CheckFunctionExists) +include(CheckIncludeFile) +include(CheckCSourceCompiles) +enable_testing() + +check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(stdint.h HAVE_STDINT_H) +check_include_file(stddef.h HAVE_STDDEF_H) + +# +# Check to see if we have large file support +# +set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) +# We add these other definitions here because CheckTypeSize.cmake +# in CMake 2.4.x does not automatically do so and we want +# compatibility with CMake 2.4.x. +if(HAVE_SYS_TYPES_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) +endif() +if(HAVE_STDINT_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) +endif() +if(HAVE_STDDEF_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) +endif() +check_type_size(off64_t OFF64_T) +if(HAVE_OFF64_T) + add_definitions(-D_LARGEFILE64_SOURCE=1) +endif() +set(CMAKE_REQUIRED_DEFINITIONS) # clear variable + +# +# Check for fseeko +# +check_function_exists(fseeko HAVE_FSEEKO) +if(NOT HAVE_FSEEKO) + add_definitions(-DNO_FSEEKO) +endif() + +# +# Check for unistd.h +# +check_include_file(unistd.h Z_HAVE_UNISTD_H) + +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + # If we're doing an out of source build and the user has a zconf.h + # in their source tree... + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) + message(STATUS "Renaming") + message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h") + message(STATUS "to 'zconf.h.included' because this file is included with zlib") + message(STATUS "but CMake generates it automatically in the build directory.") + file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) + endif() +endif() + +set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein + ${ZLIB_PC} @ONLY) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + + +#============================================================================ +# zlib +#============================================================================ + +set(ZLIB_PUBLIC_HDRS + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h + zlib.h +) +set(ZLIB_PRIVATE_HDRS + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zutil.h +) +set(ZLIB_SRCS + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + inflate.c + infback.c + inftrees.c + inffast.c + trees.c + uncompr.c + zutil.c +) + +if(NOT MINGW) + set(ZLIB_DLL_SRCS + win32/zlib1.rc # If present will override custom build rule below. + ) +endif() + +# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION +file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) +string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" + "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) + +if(MINGW) + # This gets us DLL resource information when compiling on MinGW. + if(NOT CMAKE_RC_COMPILER) + set(CMAKE_RC_COMPILER windres.exe) + endif() + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + COMMAND ${CMAKE_RC_COMPILER} + -D GCC_WINDRES + -I ${CMAKE_CURRENT_SOURCE_DIR} + -I ${CMAKE_CURRENT_BINARY_DIR} + -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) + set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) +endif(MINGW) + +add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) +set_target_properties(zlib PROPERTIES SOVERSION 1) + +if(NOT CYGWIN) + # This property causes shared libraries on Linux to have the full version + # encoded into their final filename. We disable this on Cygwin because + # it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll + # seems to be the default. + # + # This has no effect with MSVC, on that platform the version info for + # the DLL comes from the resource file win32/zlib1.rc + set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION}) +endif() + +if(UNIX) + # On unix-like platforms the library is almost always called libz + if (BUILD_TYPE STREQUAL "SHARED") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z2) + elseif(BUILD_TYPE STREQUAL "STATIC") + set_target_properties(zlib PROPERTIES OUTPUT_NAME z2) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) + else() + set_target_properties(zlib PROPERTIES OUTPUT_NAME a) + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME b) + endif() + if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) + set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") + endif() +elseif(BUILD_SHARED_LIBS AND WIN32) + # Creates zlib1.dll when building shared library version + set_target_properties(zlib PROPERTIES SUFFIX "1.dll") +endif() + +if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) + if (BUILD_TYPE STREQUAL "SHARED") + install(TARGETS zlib + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + elseif(BUILD_TYPE STREQUAL "STATIC") + install(TARGETS zlibstatic + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) + endif() +endif() +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3") +endif() +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) + install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}") +endif() + +#============================================================================ +# Example binaries +#============================================================================ +if(ZLIB_BUILD_EXAMPLES) + add_executable(example test/example.c) + target_link_libraries(example zlib) + add_test(example example) + + add_executable(minigzip test/minigzip.c) + target_link_libraries(minigzip zlib) + + if(HAVE_OFF64_T) + add_executable(example64 test/example.c) + target_link_libraries(example64 zlib) + set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + add_test(example64 example64) + + add_executable(minigzip64 test/minigzip.c) + target_link_libraries(minigzip64 zlib) + set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") + endif() +endif() diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/cppjs.build.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/cppjs.build.js new file mode 100644 index 00000000..b55bcd3c --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/cppjs.build.js @@ -0,0 +1,6 @@ +export default { + getURL: (version) => `https://zlib.net/zlib-${version}.tar.gz`, + copyToSource: { 'assets/CMakeLists.txt': 'CMakeLists.txt' }, + buildType: 'cmake', + getBuildParams: () => ['-DZLIB_BUILD_EXAMPLES=OFF'], +}; diff --git a/packages/cppjs-package-webp/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/cppjs.config.js similarity index 72% rename from packages/cppjs-package-webp/cppjs.config.js rename to cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/cppjs.config.js index 7ca6d619..12c2cf98 100644 --- a/packages/cppjs-package-webp/cppjs.config.js +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/cppjs.config.js @@ -1,10 +1,9 @@ export default { general: { - name: 'webp', + name: 'z', }, export: { type: 'cmake', - libName: ['webp', 'sharpyuv'], }, paths: { config: import.meta.url, diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/package.json new file mode 100644 index 00000000..dbda8960 --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm/package.json @@ -0,0 +1,26 @@ +{ + "name": "@cpp.js/package-zlib-wasm", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "scripts": { + "build": "cppjs build -p WebAssembly", + "clear": "rm -rf .cppjs dist", + "prepublishOnly": "cppjs build" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/cppjs.config.js b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/cppjs.config.js new file mode 100644 index 00000000..122520ae --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/cppjs.config.js @@ -0,0 +1,14 @@ +import zlibWasm from '@cpp.js/package-zlib-wasm/cppjs.config.js'; +import zlibAndroid from '@cpp.js/package-zlib-android/cppjs.config.js'; +import zlibIOS from '@cpp.js/package-zlib-ios/cppjs.config.js'; + +export default { + dependencies: [ + zlibWasm, + zlibAndroid, + zlibIOS + ], + paths: { + config: import.meta.url, + }, +}; diff --git a/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/package.json b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/package.json new file mode 100644 index 00000000..012d5e9e --- /dev/null +++ b/cppjs-packages/cppjs-package-zlib/cppjs-package-zlib/package.json @@ -0,0 +1,24 @@ +{ + "name": "@cpp.js/package-zlib", + "version": "2.0.0", + "nativeVersion": "1.3.1", + "description": "This package provides the precompiled zlib library, built using cpp.js, for easy integration into JavaScript, WebAssembly and React Native projects. It offers compression and decompression functionalities through the zlib API, ensuring high performance and cross-platform compatibility. Ideal for use in web and mobile applications.", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-package-zlib#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "Zlib", + "type": "module", + "devDependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-zlib-wasm": "workspace:^", + "@cpp.js/package-zlib-android": "workspace:^", + "@cpp.js/package-zlib-ios": "workspace:^" + }, + "keywords": [ + "z", + "zlib", + "libz", + "cpp.js-package", + "webassembly", + "react-native" + ] +} \ No newline at end of file diff --git a/packages/cppjs-plugin-metro/CHANGELOG.md b/cppjs-plugins/cppjs-plugin-metro/CHANGELOG.md similarity index 100% rename from packages/cppjs-plugin-metro/CHANGELOG.md rename to cppjs-plugins/cppjs-plugin-metro/CHANGELOG.md diff --git a/packages/cppjs-plugin-metro/README.md b/cppjs-plugins/cppjs-plugin-metro/README.md similarity index 100% rename from packages/cppjs-plugin-metro/README.md rename to cppjs-plugins/cppjs-plugin-metro/README.md diff --git a/packages/cppjs-plugin-metro/package.json b/cppjs-plugins/cppjs-plugin-metro/package.json similarity index 100% rename from packages/cppjs-plugin-metro/package.json rename to cppjs-plugins/cppjs-plugin-metro/package.json diff --git a/packages/cppjs-plugin-metro/src/metro-plugin.cjs b/cppjs-plugins/cppjs-plugin-metro/src/metro-plugin.cjs similarity index 100% rename from packages/cppjs-plugin-metro/src/metro-plugin.cjs rename to cppjs-plugins/cppjs-plugin-metro/src/metro-plugin.cjs diff --git a/packages/cppjs-plugin-metro/src/metro-transformer.cjs b/cppjs-plugins/cppjs-plugin-metro/src/metro-transformer.cjs similarity index 100% rename from packages/cppjs-plugin-metro/src/metro-transformer.cjs rename to cppjs-plugins/cppjs-plugin-metro/src/metro-transformer.cjs diff --git a/packages/cppjs-plugin-react-native-ios-helper/.npmignore b/cppjs-plugins/cppjs-plugin-react-native-ios-helper/.npmignore similarity index 100% rename from packages/cppjs-plugin-react-native-ios-helper/.npmignore rename to cppjs-plugins/cppjs-plugin-react-native-ios-helper/.npmignore diff --git a/packages/cppjs-plugin-react-native-ios-helper/CHANGELOG.md b/cppjs-plugins/cppjs-plugin-react-native-ios-helper/CHANGELOG.md similarity index 100% rename from packages/cppjs-plugin-react-native-ios-helper/CHANGELOG.md rename to cppjs-plugins/cppjs-plugin-react-native-ios-helper/CHANGELOG.md diff --git a/packages/cppjs-plugin-react-native-ios-helper/README.md b/cppjs-plugins/cppjs-plugin-react-native-ios-helper/README.md similarity index 100% rename from packages/cppjs-plugin-react-native-ios-helper/README.md rename to cppjs-plugins/cppjs-plugin-react-native-ios-helper/README.md diff --git a/packages/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.h b/cppjs-plugins/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.h similarity index 100% rename from packages/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.h rename to cppjs-plugins/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.h diff --git a/packages/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.mm b/cppjs-plugins/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.mm similarity index 100% rename from packages/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.mm rename to cppjs-plugins/cppjs-plugin-react-native-ios-helper/ios/CppjsModule.mm diff --git a/packages/cppjs-plugin-react-native-ios-helper/package.json b/cppjs-plugins/cppjs-plugin-react-native-ios-helper/package.json similarity index 100% rename from packages/cppjs-plugin-react-native-ios-helper/package.json rename to cppjs-plugins/cppjs-plugin-react-native-ios-helper/package.json diff --git a/packages/cppjs-plugin-react-native-ios-helper/react-native-cppjs-ios-helper.podspec b/cppjs-plugins/cppjs-plugin-react-native-ios-helper/react-native-cppjs-ios-helper.podspec similarity index 100% rename from packages/cppjs-plugin-react-native-ios-helper/react-native-cppjs-ios-helper.podspec rename to cppjs-plugins/cppjs-plugin-react-native-ios-helper/react-native-cppjs-ios-helper.podspec diff --git a/packages/cppjs-plugin-react-native/.gitignore b/cppjs-plugins/cppjs-plugin-react-native/.gitignore similarity index 100% rename from packages/cppjs-plugin-react-native/.gitignore rename to cppjs-plugins/cppjs-plugin-react-native/.gitignore diff --git a/packages/cppjs-plugin-react-native/.npmignore b/cppjs-plugins/cppjs-plugin-react-native/.npmignore similarity index 100% rename from packages/cppjs-plugin-react-native/.npmignore rename to cppjs-plugins/cppjs-plugin-react-native/.npmignore diff --git a/packages/cppjs-plugin-react-native/CHANGELOG.md b/cppjs-plugins/cppjs-plugin-react-native/CHANGELOG.md similarity index 100% rename from packages/cppjs-plugin-react-native/CHANGELOG.md rename to cppjs-plugins/cppjs-plugin-react-native/CHANGELOG.md diff --git a/packages/cppjs-plugin-react-native/README.md b/cppjs-plugins/cppjs-plugin-react-native/README.md similarity index 100% rename from packages/cppjs-plugin-react-native/README.md rename to cppjs-plugins/cppjs-plugin-react-native/README.md diff --git a/packages/cppjs-plugin-react-native/android/build.gradle b/cppjs-plugins/cppjs-plugin-react-native/android/build.gradle similarity index 100% rename from packages/cppjs-plugin-react-native/android/build.gradle rename to cppjs-plugins/cppjs-plugin-react-native/android/build.gradle diff --git a/packages/cppjs-plugin-react-native/android/src/main/AndroidManifest.xml b/cppjs-plugins/cppjs-plugin-react-native/android/src/main/AndroidManifest.xml similarity index 100% rename from packages/cppjs-plugin-react-native/android/src/main/AndroidManifest.xml rename to cppjs-plugins/cppjs-plugin-react-native/android/src/main/AndroidManifest.xml diff --git a/packages/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibModule.java b/cppjs-plugins/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibModule.java similarity index 100% rename from packages/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibModule.java rename to cppjs-plugins/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibModule.java diff --git a/packages/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibPackage.java b/cppjs-plugins/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibPackage.java similarity index 100% rename from packages/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibPackage.java rename to cppjs-plugins/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/RNJsiLibPackage.java diff --git a/packages/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/Utils.java b/cppjs-plugins/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/Utils.java similarity index 100% rename from packages/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/Utils.java rename to cppjs-plugins/cppjs-plugin-react-native/android/src/main/java/com/jsi/lib/Utils.java diff --git a/packages/cppjs-plugin-react-native/cpp/CMakeLists.txt b/cppjs-plugins/cppjs-plugin-react-native/cpp/CMakeLists.txt similarity index 100% rename from packages/cppjs-plugin-react-native/cpp/CMakeLists.txt rename to cppjs-plugins/cppjs-plugin-react-native/cpp/CMakeLists.txt diff --git a/packages/cppjs-plugin-react-native/cpp/src/JSI_module.cpp b/cppjs-plugins/cppjs-plugin-react-native/cpp/src/JSI_module.cpp similarity index 100% rename from packages/cppjs-plugin-react-native/cpp/src/JSI_module.cpp rename to cppjs-plugins/cppjs-plugin-react-native/cpp/src/JSI_module.cpp diff --git a/packages/cppjs-plugin-react-native/cppjs.config.mjs b/cppjs-plugins/cppjs-plugin-react-native/cppjs.config.mjs similarity index 100% rename from packages/cppjs-plugin-react-native/cppjs.config.mjs rename to cppjs-plugins/cppjs-plugin-react-native/cppjs.config.mjs diff --git a/packages/cppjs-plugin-react-native/js/index.js b/cppjs-plugins/cppjs-plugin-react-native/js/index.js similarity index 100% rename from packages/cppjs-plugin-react-native/js/index.js rename to cppjs-plugins/cppjs-plugin-react-native/js/index.js diff --git a/packages/cppjs-plugin-react-native/package.json b/cppjs-plugins/cppjs-plugin-react-native/package.json similarity index 100% rename from packages/cppjs-plugin-react-native/package.json rename to cppjs-plugins/cppjs-plugin-react-native/package.json diff --git a/packages/cppjs-plugin-react-native/react-native-cppjs.podspec b/cppjs-plugins/cppjs-plugin-react-native/react-native-cppjs.podspec similarity index 100% rename from packages/cppjs-plugin-react-native/react-native-cppjs.podspec rename to cppjs-plugins/cppjs-plugin-react-native/react-native-cppjs.podspec diff --git a/packages/cppjs-plugin-react-native/script/build_android.js b/cppjs-plugins/cppjs-plugin-react-native/script/build_android.js similarity index 100% rename from packages/cppjs-plugin-react-native/script/build_android.js rename to cppjs-plugins/cppjs-plugin-react-native/script/build_android.js diff --git a/packages/cppjs-plugin-react-native/script/build_ios.js b/cppjs-plugins/cppjs-plugin-react-native/script/build_ios.js similarity index 100% rename from packages/cppjs-plugin-react-native/script/build_ios.js rename to cppjs-plugins/cppjs-plugin-react-native/script/build_ios.js diff --git a/packages/cppjs-plugin-react-native/script/build_js.js b/cppjs-plugins/cppjs-plugin-react-native/script/build_js.js similarity index 100% rename from packages/cppjs-plugin-react-native/script/build_js.js rename to cppjs-plugins/cppjs-plugin-react-native/script/build_js.js diff --git a/packages/cppjs-plugin-react-native/script/getCliPath.js b/cppjs-plugins/cppjs-plugin-react-native/script/getCliPath.js similarity index 100% rename from packages/cppjs-plugin-react-native/script/getCliPath.js rename to cppjs-plugins/cppjs-plugin-react-native/script/getCliPath.js diff --git a/packages/cppjs-plugin-rollup/.npmignore b/cppjs-plugins/cppjs-plugin-rollup/.npmignore similarity index 100% rename from packages/cppjs-plugin-rollup/.npmignore rename to cppjs-plugins/cppjs-plugin-rollup/.npmignore diff --git a/packages/cppjs-plugin-rollup/CHANGELOG.md b/cppjs-plugins/cppjs-plugin-rollup/CHANGELOG.md similarity index 100% rename from packages/cppjs-plugin-rollup/CHANGELOG.md rename to cppjs-plugins/cppjs-plugin-rollup/CHANGELOG.md diff --git a/packages/cppjs-plugin-rollup/README.md b/cppjs-plugins/cppjs-plugin-rollup/README.md similarity index 100% rename from packages/cppjs-plugin-rollup/README.md rename to cppjs-plugins/cppjs-plugin-rollup/README.md diff --git a/packages/cppjs-plugin-rollup/index.js b/cppjs-plugins/cppjs-plugin-rollup/index.js similarity index 90% rename from packages/cppjs-plugin-rollup/index.js rename to cppjs-plugins/cppjs-plugin-rollup/index.js index 57ee2f3f..88d8d550 100644 --- a/packages/cppjs-plugin-rollup/index.js +++ b/cppjs-plugins/cppjs-plugin-rollup/index.js @@ -87,6 +87,14 @@ const rollupCppjsPlugin = (options, bridges = []) => { fileName: 'cpp.data.txt', }); } + /* const workerFilePath = `${state.config.paths.build}/${state.config.general.name}.js`; + if (fs.existsSync(workerFilePath)) { + this.emitFile({ + type: 'asset', + source: fs.readFileSync(workerFilePath), + fileName: `cpp.worker.js`, + }); + } */ }, }; }; diff --git a/packages/cppjs-plugin-rollup/package.json b/cppjs-plugins/cppjs-plugin-rollup/package.json similarity index 100% rename from packages/cppjs-plugin-rollup/package.json rename to cppjs-plugins/cppjs-plugin-rollup/package.json diff --git a/packages/cppjs-plugin-vite/.npmignore b/cppjs-plugins/cppjs-plugin-vite/.npmignore similarity index 100% rename from packages/cppjs-plugin-vite/.npmignore rename to cppjs-plugins/cppjs-plugin-vite/.npmignore diff --git a/packages/cppjs-plugin-vite/CHANGELOG.md b/cppjs-plugins/cppjs-plugin-vite/CHANGELOG.md similarity index 100% rename from packages/cppjs-plugin-vite/CHANGELOG.md rename to cppjs-plugins/cppjs-plugin-vite/CHANGELOG.md diff --git a/packages/cppjs-plugin-vite/README.md b/cppjs-plugins/cppjs-plugin-vite/README.md similarity index 100% rename from packages/cppjs-plugin-vite/README.md rename to cppjs-plugins/cppjs-plugin-vite/README.md diff --git a/packages/cppjs-plugin-vite/index.js b/cppjs-plugins/cppjs-plugin-vite/index.js similarity index 85% rename from packages/cppjs-plugin-vite/index.js rename to cppjs-plugins/cppjs-plugin-vite/index.js index ca990367..a9f25710 100644 --- a/packages/cppjs-plugin-vite/index.js +++ b/cppjs-plugins/cppjs-plugin-vite/index.js @@ -32,7 +32,11 @@ const viteCppjsPlugin = (options) => { configureServer(server) { if (isServe) { server.middlewares.use((req, res, next) => { + res.setHeader("Cross-Origin-Opener-Policy", "same-origin"); + res.setHeader("Cross-Origin-Embedder-Policy", "require-corp"); if (req.url === '/cpp.wasm') req.url = `/@fs/${state.config.paths.build}/${state.config.general.name}.wasm`; + else if (req.url === '/cpp.data.txt') req.url = `/@fs/${state.config.paths.build}/${state.config.general.name}.data.txt`; + // else if (req.url === '/cpp.worker.js') req.url = `/@fs/${state.config.paths.build}/${state.config.general.name}.js`; next(); }); } diff --git a/packages/cppjs-plugin-vite/package.json b/cppjs-plugins/cppjs-plugin-vite/package.json similarity index 100% rename from packages/cppjs-plugin-vite/package.json rename to cppjs-plugins/cppjs-plugin-vite/package.json diff --git a/packages/cppjs-plugin-webpack-loader/.npmignore b/cppjs-plugins/cppjs-plugin-webpack-loader/.npmignore similarity index 100% rename from packages/cppjs-plugin-webpack-loader/.npmignore rename to cppjs-plugins/cppjs-plugin-webpack-loader/.npmignore diff --git a/packages/cppjs-plugin-webpack-loader/CHANGELOG.md b/cppjs-plugins/cppjs-plugin-webpack-loader/CHANGELOG.md similarity index 100% rename from packages/cppjs-plugin-webpack-loader/CHANGELOG.md rename to cppjs-plugins/cppjs-plugin-webpack-loader/CHANGELOG.md diff --git a/packages/cppjs-plugin-webpack-loader/README.md b/cppjs-plugins/cppjs-plugin-webpack-loader/README.md similarity index 100% rename from packages/cppjs-plugin-webpack-loader/README.md rename to cppjs-plugins/cppjs-plugin-webpack-loader/README.md diff --git a/packages/cppjs-plugin-webpack-loader/index.js b/cppjs-plugins/cppjs-plugin-webpack-loader/index.js similarity index 100% rename from packages/cppjs-plugin-webpack-loader/index.js rename to cppjs-plugins/cppjs-plugin-webpack-loader/index.js diff --git a/packages/cppjs-plugin-webpack-loader/package.json b/cppjs-plugins/cppjs-plugin-webpack-loader/package.json similarity index 100% rename from packages/cppjs-plugin-webpack-loader/package.json rename to cppjs-plugins/cppjs-plugin-webpack-loader/package.json diff --git a/packages/cppjs-plugin-webpack/.npmignore b/cppjs-plugins/cppjs-plugin-webpack/.npmignore similarity index 100% rename from packages/cppjs-plugin-webpack/.npmignore rename to cppjs-plugins/cppjs-plugin-webpack/.npmignore diff --git a/packages/cppjs-plugin-webpack/CHANGELOG.md b/cppjs-plugins/cppjs-plugin-webpack/CHANGELOG.md similarity index 100% rename from packages/cppjs-plugin-webpack/CHANGELOG.md rename to cppjs-plugins/cppjs-plugin-webpack/CHANGELOG.md diff --git a/packages/cppjs-plugin-webpack/README.md b/cppjs-plugins/cppjs-plugin-webpack/README.md similarity index 100% rename from packages/cppjs-plugin-webpack/README.md rename to cppjs-plugins/cppjs-plugin-webpack/README.md diff --git a/packages/cppjs-plugin-webpack/index.js b/cppjs-plugins/cppjs-plugin-webpack/index.js similarity index 76% rename from packages/cppjs-plugin-webpack/index.js rename to cppjs-plugins/cppjs-plugin-webpack/index.js index d9fbac92..c5fa570b 100644 --- a/packages/cppjs-plugin-webpack/index.js +++ b/cppjs-plugins/cppjs-plugin-webpack/index.js @@ -29,6 +29,15 @@ export default class CppjsWebpackPlugin { if (!isDev) { fs.copyFileSync(`${state.config.paths.build}/${state.config.general.name}.browser.js`, `${compilation.options.output.path}/cpp.js`); fs.copyFileSync(`${state.config.paths.build}/${state.config.general.name}.wasm`, `${compilation.options.output.path}/cpp.wasm`); + + const dataFilePath = `${state.config.paths.build}/${state.config.general.name}.data.txt`; + if (fs.existsSync(dataFilePath)) { + fs.copyFileSync(dataFilePath, `${compilation.options.output.path}/cpp.data.txt`); + } + /* const workerFilePath = `${state.config.paths.build}/${state.config.general.name}.js`; + if (fs.existsSync(workerFilePath)) { + fs.copyFileSync(workerFilePath, `${compilation.options.output.path}/cpp.worker.js`); + } */ } } diff --git a/packages/cppjs-plugin-webpack/package.json b/cppjs-plugins/cppjs-plugin-webpack/package.json similarity index 100% rename from packages/cppjs-plugin-webpack/package.json rename to cppjs-plugins/cppjs-plugin-webpack/package.json diff --git a/cppjs-samples/cppjs-playground-backend-nodejs-multithread/cppjs.config.mjs b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/cppjs.config.mjs new file mode 100644 index 00000000..4fd37c48 --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/cppjs.config.mjs @@ -0,0 +1,46 @@ +import curl from '@cpp.js/package-curl-multithread/cppjs.config.js'; +import expat from '@cpp.js/package-expat-multithread/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal-multithread/cppjs.config.js'; +import geos from '@cpp.js/package-geos-multithread/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff-multithread/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv-multithread/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl-multithread/cppjs.config.js'; +import proj from '@cpp.js/package-proj-multithread/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite-multithread/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3-multithread/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff-multithread/cppjs.config.js'; +import webp from '@cpp.js/package-webp-multithread/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib-multithread/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-sample-backend-nodejs-wasm', + }, + dependencies: [ + curl, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + output: 'dist', + }, + platform: { + 'Emscripten-x86_64': { + binary: { + emccFlags: ['-sJSPI'], + } + }, + } +}; diff --git a/cppjs-samples/cppjs-playground-backend-nodejs-multithread/package.json b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/package.json new file mode 100644 index 00000000..b6ca5b02 --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/package.json @@ -0,0 +1,36 @@ +{ + "name": "@cpp.js/sample-backend-nodejs-wasm-multithread", + "version": "1.0.1", + "description": "Cpp.js - Node.js webassembly sample", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-backend-nodejs-wasm#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "scripts": { + "build": "cppjs build -p WebAssembly" + }, + "dependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-curl-multithread": "workspace:^", + "@cpp.js/package-expat-multithread": "workspace:^", + "@cpp.js/package-gdal-multithread": "workspace:^", + "@cpp.js/package-geos-multithread": "workspace:^", + "@cpp.js/package-geotiff-multithread": "workspace:^", + "@cpp.js/package-iconv-multithread": "workspace:^", + "@cpp.js/package-openssl-multithread": "workspace:^", + "@cpp.js/package-proj-multithread": "workspace:^", + "@cpp.js/package-spatialite-multithread": "workspace:^", + "@cpp.js/package-sqlite3-multithread": "workspace:^", + "@cpp.js/package-tiff-multithread": "workspace:^", + "@cpp.js/package-webp-multithread": "workspace:^", + "@cpp.js/package-zlib-multithread": "workspace:^", + "ws": "8.18.3", + "xhr2": "^0.2.1" + }, + "keywords": [ + "cpp.js-sample", + "node", + "webassembly", + "bind", + "c++" + ] +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/index.mjs b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/index.mjs new file mode 100644 index 00000000..ee81dd30 --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/index.mjs @@ -0,0 +1,22 @@ +import initCppJs from '../dist/cppjs-sample-backend-nodejs-wasm.node.js'; + +function wait(ms, fn) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(fn()); + }, ms); + }); +} + +initCppJs().then(async ({ Native }) => { + try { + Native.runOnThread(); + await Native.ops_JSPI(); + const z = Native.sample(); + const threadResult = await wait(5000, () => Native.getThreadResult()); + + console.log(`${z} - ${threadResult}`); + } catch (e) { + console.error(e, e.message, e.stack); + } +}); diff --git a/cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/native b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/native new file mode 120000 index 00000000..d7e026f5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs-multithread/src/native @@ -0,0 +1 @@ +../../cppjs-playground-config/native \ No newline at end of file diff --git a/packages/cppjs-sample-backend-nodejs-wasm/CHANGELOG.md b/cppjs-samples/cppjs-playground-backend-nodejs/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/CHANGELOG.md rename to cppjs-samples/cppjs-playground-backend-nodejs/CHANGELOG.md diff --git a/packages/cppjs-sample-backend-nodejs-wasm/README.md b/cppjs-samples/cppjs-playground-backend-nodejs/README.md similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/README.md rename to cppjs-samples/cppjs-playground-backend-nodejs/README.md diff --git a/cppjs-samples/cppjs-playground-backend-nodejs/cppjs.config.mjs b/cppjs-samples/cppjs-playground-backend-nodejs/cppjs.config.mjs new file mode 100644 index 00000000..94f9cf4f --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs/cppjs.config.mjs @@ -0,0 +1,48 @@ +import matrix from '@cpp.js/sample-lib-prebuilt-matrix/cppjs.config.js'; +import curl from '@cpp.js/package-curl/cppjs.config.js'; +import expat from '@cpp.js/package-expat/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal/cppjs.config.js'; +import geos from '@cpp.js/package-geos/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl/cppjs.config.js'; +import proj from '@cpp.js/package-proj/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff/cppjs.config.js'; +import webp from '@cpp.js/package-webp/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-sample-backend-nodejs-wasm', + }, + dependencies: [ + matrix, + curl, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + output: 'dist', + }, + platform: { + 'Emscripten-x86_64': { + binary: { + emccFlags: ['-sJSPI'], + } + }, + } +}; diff --git a/cppjs-samples/cppjs-playground-backend-nodejs/package.json b/cppjs-samples/cppjs-playground-backend-nodejs/package.json new file mode 100644 index 00000000..c4fbf7cc --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs/package.json @@ -0,0 +1,37 @@ +{ + "name": "@cpp.js/sample-backend-nodejs-wasm", + "version": "1.0.1", + "description": "Cpp.js - Node.js webassembly sample", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-backend-nodejs-wasm#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "scripts": { + "build": "cppjs build -p WebAssembly" + }, + "dependencies": { + "cpp.js": "workspace:^", + "@cpp.js/sample-lib-prebuilt-matrix": "workspace:^", + "@cpp.js/package-curl": "workspace:^", + "@cpp.js/package-expat": "workspace:^", + "@cpp.js/package-gdal": "workspace:^", + "@cpp.js/package-geos": "workspace:^", + "@cpp.js/package-geotiff": "workspace:^", + "@cpp.js/package-iconv": "workspace:^", + "@cpp.js/package-openssl": "workspace:^", + "@cpp.js/package-proj": "workspace:^", + "@cpp.js/package-spatialite": "workspace:^", + "@cpp.js/package-sqlite3": "workspace:^", + "@cpp.js/package-tiff": "workspace:^", + "@cpp.js/package-webp": "workspace:^", + "@cpp.js/package-zlib": "workspace:^", + "ws": "8.18.3", + "xhr2": "^0.2.1" + }, + "keywords": [ + "cpp.js-sample", + "node", + "webassembly", + "bind", + "c++" + ] +} diff --git a/cppjs-samples/cppjs-playground-backend-nodejs/src/index.js b/cppjs-samples/cppjs-playground-backend-nodejs/src/index.js new file mode 100644 index 00000000..2d7560c9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs/src/index.js @@ -0,0 +1,20 @@ +const initCppJs = require('../dist/cppjs-sample-backend-nodejs-wasm.node.js'); + +function wait(ms, fn) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(fn()); + }, ms); + }); +} + +initCppJs().then(async ({ Native }) => { + try { + await Native.ops_JSPI(); + const z = Native.sample(); + + console.log(`${z}`); + } catch (e) { + console.error(e, e.message, e.stack); + } +}); diff --git a/cppjs-samples/cppjs-playground-backend-nodejs/src/index.mjs b/cppjs-samples/cppjs-playground-backend-nodejs/src/index.mjs new file mode 100644 index 00000000..89e0d82b --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs/src/index.mjs @@ -0,0 +1,20 @@ +import initCppJs from '../dist/cppjs-sample-backend-nodejs-wasm.node.js'; + +function wait(ms, fn) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(fn()); + }, ms); + }); +} + +initCppJs().then(async ({ Native }) => { + try { + await Native.ops_JSPI(); + const z = Native.sample(); + + console.log(`${z}`); + } catch (e) { + console.error(e, e.message, e.stack); + } +}); diff --git a/cppjs-samples/cppjs-playground-backend-nodejs/src/native b/cppjs-samples/cppjs-playground-backend-nodejs/src/native new file mode 120000 index 00000000..d7e026f5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-backend-nodejs/src/native @@ -0,0 +1 @@ +../../cppjs-playground-config/native \ No newline at end of file diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/.gitignore b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/.gitignore similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/.gitignore rename to cppjs-samples/cppjs-playground-cloud-cloudflare-worker/.gitignore diff --git a/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/cppjs.config.mjs b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/cppjs.config.mjs new file mode 100644 index 00000000..fd28d10d --- /dev/null +++ b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/cppjs.config.mjs @@ -0,0 +1,31 @@ +import expat from '@cpp.js/package-expat/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal/cppjs.config.js'; +import geos from '@cpp.js/package-geos/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl/cppjs.config.js'; +import proj from '@cpp.js/package-proj/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff/cppjs.config.js'; +import webp from '@cpp.js/package-webp/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-playground-cloud-cloudflare-worker', + }, + dependencies: [ + expat, + iconv, + sqlite3, + tiff, + webp, + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + output: 'dist', + }, +}; diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/e2e/cppjs.spec.cjs similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/e2e/cppjs.spec.cjs rename to cppjs-samples/cppjs-playground-cloud-cloudflare-worker/e2e/cppjs.spec.cjs diff --git a/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/index.js b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/index.js new file mode 100644 index 00000000..df78d5cd --- /dev/null +++ b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/index.js @@ -0,0 +1,13 @@ +import initCppJs from './dist/cppjs-playground-cloud-cloudflare-worker.browser.js'; +import wasmContent from './dist/cppjs-playground-cloud-cloudflare-worker.wasm'; + +globalThis.WorkerGlobalScope = undefined; +const { Native } = await initCppJs({ getWasmFunction: () => wasmContent }); + +export default { + async fetch(request, env, ctx) { + const z = Native.sample(); + + return new Response(`- ${z} -`); + }, +}; diff --git a/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/package.json b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/package.json new file mode 100644 index 00000000..e389c73a --- /dev/null +++ b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/package.json @@ -0,0 +1,48 @@ +{ + "name": "@cpp.js/playground-cloud-cloudflare-worker", + "version": "1.0.1", + "description": "Cpp.js - Cloudflare webassembly playground", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-playground-cloud-cloudflare-worker#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "scripts": { + "build": "cppjs build -p WebAssembly", + "dev": "wrangler dev", + "deploy": "wrangler dev" + }, + "files": [ + "dist/@cpp.js/sample-cloud-cloudflare.browser.js", + "dist/@cpp.js/sample-cloud-cloudflare.wasm", + "index.js", + "cppjs.config.mjs", + "wrangler.toml", + "src" + ], + "dependencies": { + "cpp.js": "workspace:^", + "@cpp.js/package-expat": "workspace:^", + "@cpp.js/package-gdal": "workspace:^", + "@cpp.js/package-geos": "workspace:^", + "@cpp.js/package-geotiff": "workspace:^", + "@cpp.js/package-iconv": "workspace:^", + "@cpp.js/package-openssl": "workspace:^", + "@cpp.js/package-proj": "workspace:^", + "@cpp.js/package-spatialite": "workspace:^", + "@cpp.js/package-sqlite3": "workspace:^", + "@cpp.js/package-tiff": "workspace:^", + "@cpp.js/package-webp": "workspace:^", + "@cpp.js/package-zlib": "workspace:^" + }, + "devDependencies": { + "wrangler": "^4.50.0", + "@playwright/test": "^1.49.1" + }, + "keywords": [ + "cpp.js-sample", + "cloudflare", + "cloudflare-worker", + "webassembly", + "bind", + "c++" + ] +} \ No newline at end of file diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/playwright.dev.config.cjs b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/playwright.dev.config.cjs similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/playwright.dev.config.cjs rename to cppjs-samples/cppjs-playground-cloud-cloudflare-worker/playwright.dev.config.cjs diff --git a/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.cpp b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.cpp new file mode 100644 index 00000000..ebc62c81 --- /dev/null +++ b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.cpp @@ -0,0 +1,3 @@ +#include "native.h" + +std::string Native::sample() { return "hello"; } diff --git a/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.h b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.h new file mode 100644 index 00000000..f9902779 --- /dev/null +++ b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/src/native/native.h @@ -0,0 +1,12 @@ +#ifndef _NATIVE_H +#define _NATIVE_H + +#include +#include + +class Native { +public: + static std::string sample(); +}; + +#endif diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/wrangler.toml b/cppjs-samples/cppjs-playground-cloud-cloudflare-worker/wrangler.toml similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/wrangler.toml rename to cppjs-samples/cppjs-playground-cloud-cloudflare-worker/wrangler.toml diff --git a/cppjs-samples/cppjs-playground-config/native/native.cpp b/cppjs-samples/cppjs-playground-config/native/native.cpp new file mode 100644 index 00000000..58c033d1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-config/native/native.cpp @@ -0,0 +1,310 @@ +#include "native.h" +// #include +#include +#include + +#ifdef __EMSCRIPTEN2__ +#include +#include +#include +#include + +static EMSCRIPTEN_WEBSOCKET_T bridgeSocket = 0; +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +static std::string ooo = "..."; +static std::string threadResult = ""; + +size_t WriteCallback(void *contents, size_t size, size_t nmemb, + std::string *output) { + size_t totalSize = size * nmemb; + output->append((char *)contents, totalSize); + return totalSize; +} + +int lookup_host(const char *host) { + struct addrinfo hints, *res; + int errcode; + char addrstr[100]; + void *ptr; + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = PF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_flags |= AI_CANONNAME; + + errcode = getaddrinfo(host, NULL, &hints, &res); + if (errcode != 0) { + return -1; + } + + ooo = "Host: " + std::string(host); + while (res) { + inet_ntop(res->ai_family, res->ai_addr->sa_data, addrstr, 100); + + switch (res->ai_family) { + case AF_INET: + ptr = &((struct sockaddr_in *)res->ai_addr)->sin_addr; + break; + case AF_INET6: + ptr = &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; + break; + } + inet_ntop(res->ai_family, ptr, addrstr, 100); + ooo += ", IPv" + std::to_string(res->ai_family == PF_INET6 ? 6 : 4) + + " address: " + addrstr + " (" + res->ai_canonname + ")"; + res = res->ai_next; + } + + return 0; +} + +void Native::ops_JSPI() { + auto f = []() { +#ifdef __EMSCRIPTEN2__ + bridgeSocket = + emscripten_init_websocket_to_posix_socket_bridge("ws://127.0.0.1:300"); + // Synchronously wait until connection has been established. + uint16_t readyState = 0; + do { + emscripten_websocket_get_ready_state(bridgeSocket, &readyState); + emscripten_thread_sleep(100); + } while (readyState == 0); +#endif + + CURL *curl; + CURLcode res; + std::string response; + char errbuf[CURL_ERROR_SIZE * 100]; + + curl = curl_easy_init(); // Initialize libcurl + if (curl) { + // curl_easy_setopt(curl, CURLOPT_URL, + // "https://www.cloudflarestatus.com/api/v2/status.json"); // Set the URL + curl_easy_setopt(curl, CURLOPT_URL, + "https://test22.free.beeceptor.com"); // Set the URL + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Content-Type: application/json"); + headers = curl_slist_append(headers, "Accept: application/json"); + + /* if (headers) { + size_t total_size = 0; + struct curl_slist* temp = headers; + while (temp) { + total_size += strlen(temp->data) + 2; // +2 for "\r\n" + temp = temp->next; + } + + char* result = (char*)malloc(total_size + 1); // +1 for null + terminator result[0] = '\0'; temp = headers; while (temp) { strcat(result, + temp->data); strcat(result, "\r\n"); temp = temp->next; + } + + ooo = std::string(result); + return; + } */ + + // curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + // curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L); + // curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + // curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + // curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); + curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + errbuf[0] = 0; + // curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; + // Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + // Chrome/133.0.0.0 Safari/537.36"); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, + WriteCallback); // Set callback to handle data + curl_easy_setopt(curl, CURLOPT_WRITEDATA, + &response); // Pass the response string + + // Enable SSL/TLS verification + // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); // Verify SSL + // certificate curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); // + // Verify hostname + + // Perform the request + res = curl_easy_perform(curl); + if (res == CURLE_OK) { + ooo = "response: " + response; + } else { + ooo = "error: "; + } + + // Clean up + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + } + + // lookup_host("google.com"); + + // Create socket + /* int sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock == -1) { + ooo = "Could not create socket"; + return; + } + ooo += "Socket created: " + std::to_string(sock) + "\n"; + + struct sockaddr_in server; + server.sin_addr.s_addr = inet_addr("127.0.0.1"); + server.sin_family = AF_INET; + server.sin_port = htons(7777); + + if (connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0) { + ooo += "connect failed. Error"; + return; + } + + ooo += "Connected\n"; + for (int i = 0; i < 2; ++i) { + const char message[] = "hello world"; + if (send(sock, message, strlen(message), 0) < 0) { + ooo += "Send failed"; + return; + } + + char server_reply[256]; + if (recv(sock, server_reply, 256, 0) < 0) { + ooo += "recv failed"; + break; + } + + ooo += "\nServer reply: " + std::string(server_reply); + // For the purposes of the test assert that the server + // echos back what we send it. + assert(strcmp(server_reply, message) == 0); + } + + close(sock); */ + }; + + CURL *curl; + CURLcode res; + std::string response; + char errbuf[CURL_ERROR_SIZE * 100]; + + curl = curl_easy_init(); // Initialize libcurl + if (curl) { + // curl_easy_setopt(curl, CURLOPT_URL, + // "https://www.cloudflarestatus.com/api/v2/status.json"); // Set the URL + curl_easy_setopt(curl, CURLOPT_URL, + "https://test22.free.beeceptor.com"); // Set the URL + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Content-Type: application/json"); + headers = curl_slist_append(headers, "Accept: application/json"); + + /* if (headers) { + size_t total_size = 0; + struct curl_slist* temp = headers; + while (temp) { + total_size += strlen(temp->data) + 2; // +2 for "\r\n" + temp = temp->next; + } + + char* result = (char*)malloc(total_size + 1); // +1 for null terminator + result[0] = '\0'; + temp = headers; + while (temp) { + strcat(result, temp->data); + strcat(result, "\r\n"); + temp = temp->next; + } + + ooo = std::string(result); + return; + } */ + + // curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + // curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L); + // curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + // curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + // curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); + curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + errbuf[0] = 0; + // curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel + // Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 + // Safari/537.36"); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, + WriteCallback); // Set callback to handle data + curl_easy_setopt(curl, CURLOPT_WRITEDATA, + &response); // Pass the response string + + // Enable SSL/TLS verification + // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); // Verify SSL + // certificate curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); // Verify + // hostname + + // Perform the request + res = curl_easy_perform(curl); + if (res == CURLE_OK) { + ooo = "response: " + response; + } else { + ooo = "error: "; + } + + // Clean up + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + } + + // std::thread thread_object(f); + // thread_object.detach(); + // thread_object.join(); +} + +std::string Native::sample() { + return ooo; + /* auto firstMatrix = std::make_shared(9, 1); + auto secondMatrix = std::make_shared(9, 2); + auto resultStr = std::to_string(firstMatrix->multiple(secondMatrix)->get(0)); + return "J₃ * (2*J₃) = " + resultStr + "*J₃"; */ + + /* CURL* curl; + CURLcode res; + std::string response; + + curl = curl_easy_init(); // Initialize libcurl + if (curl) { + curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com"); // Set the + URL curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set + callback to handle data curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); + // Pass the response string + + // Enable SSL/TLS verification + // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); // Verify SSL + certificate + // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); // Verify hostname + + // Perform the request + res = curl_easy_perform(curl); + if (res == CURLE_OK) { + return std::string(response); + } else { + return std::string(curl_easy_strerror(res)); + } + + // Clean up + curl_easy_cleanup(curl); + } + return std::string("Curl is not loaded!"); */ +} + +void Native::runOnThread() { + std::thread t([]() { threadResult = "hello from thread"; }); + t.join(); +} + +std::string Native::getThreadResult() { return threadResult; } diff --git a/cppjs-samples/cppjs-playground-config/native/native.h b/cppjs-samples/cppjs-playground-config/native/native.h new file mode 100644 index 00000000..68f49dc1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-config/native/native.h @@ -0,0 +1,15 @@ +#ifndef _NATIVE_H +#define _NATIVE_H + +#include +#include + +class Native { +public: + static std::string sample(); + static void ops_JSPI(); + static void runOnThread(); + static std::string getThreadResult(); +}; + +#endif diff --git a/packages/cppjs-sample-mobile-reactnative-cli/.bundle/config b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.bundle/config similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/.bundle/config rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.bundle/config diff --git a/packages/cppjs-sample-mobile-reactnative-cli/.eslintrc.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.eslintrc.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/.eslintrc.js rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.eslintrc.js diff --git a/packages/cppjs-sample-mobile-reactnative-cli/.gitignore b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.gitignore similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/.gitignore rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.gitignore diff --git a/packages/cppjs-sample-mobile-reactnative-cli/.prettierrc.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.prettierrc.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/.prettierrc.js rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/.prettierrc.js diff --git a/packages/cppjs-sample-mobile-reactnative-cli/CHANGELOG.md b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/CHANGELOG.md rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/CHANGELOG.md diff --git a/packages/cppjs-sample-mobile-reactnative-cli/Gemfile b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/Gemfile similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/Gemfile rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/Gemfile diff --git a/packages/cppjs-sample-mobile-reactnative-cli/README.md b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/README.md similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/README.md rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/README.md diff --git a/packages/cppjs-sample-mobile-reactnative-cli/__tests__/App.test.tsx b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/__tests__/App.test.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/__tests__/App.test.tsx rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/__tests__/App.test.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/build.gradle b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/build.gradle similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/build.gradle rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/build.gradle diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/debug.keystore b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/debug.keystore similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/debug.keystore rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/debug.keystore diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/proguard-rules.pro b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/proguard-rules.pro similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/proguard-rules.pro rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/proguard-rules.pro diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/debug/AndroidManifest.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/debug/AndroidManifest.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/debug/AndroidManifest.xml rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/debug/AndroidManifest.xml diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/AndroidManifest.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/AndroidManifest.xml diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/certs/cacert.pem b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/certs/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/certs/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +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----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg new file mode 100644 index 00000000..4ac8f6a6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg new file mode 100644 index 00000000..da311ad8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg new file mode 100644 index 00000000..de00b72a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv new file mode 100644 index 00000000..38295148 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv @@ -0,0 +1,321 @@ +PSIDGEODES;ID_GEODES;NOTA_CAT;NOTA_SPA;NOTA_ENG +ESRI:102022;Albers_Equal_Area-Africa-WGS84;;; +ESRI:102025;Albers_Equal_Area-Asia_North-WGS84;;; +EPSG:5070;Albers_Equal_Area-N_America-NAD83;https://epsg.io/5070;https://epsg.io/5070;https://epsg.io/5070 +Azimuthal_Equidistant;Azimuthal_Equidistant-0-90-WGS84;;; +EPSG:4088;Cilindrical_Equidistant-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +Cylindrical_Equal_Area;Cylindrical_Equal_Area-15-0-WGS84;;; +EPSG:22171;Gauss-Kruger_Faja1-PosGAR98;;; +EPSG:22172;Gauss-Kruger_Faja2-PosGAR98;;; +EPSG:22173;Gauss-Kruger_Faja3-PosGAR98;;; +EPSG:22174;Gauss-Kruger_Faja4-PosGAR98;;; +EPSG:22175;Gauss-Kruger_Faja5-PosGAR98;;; +EPSG:22176;Gauss-Kruger_Faja6-PosGAR98;;; +EPSG:22177;Gauss-Kruger_Faja7-PosGAR98;;; +EPSG:3763;Gauss-Kruger_Portugal-ETRS89;;; +PT-TM06/ETRS89;Gauss-Kruger_Portugal-ETRS89;;; +EPSG:20791;Gauss-Kruger_Portugal-Lisboa1937;;; +EPSG:2932;Gauss-Kruger_Qatar-QND;;; +EPSG:3116;Gauss-Kruger_Zona2-MAGNA;;; +SR-ORG:9111;Geostationary-WGS84;;; +Goode_Homolosine;Goode_Homolosine-WGS84;;; +ESRI:102017;LambertAzimEqualA-0-90-WGS84-Ellipsoide;https://epsg.io/102017;https://epsg.io/102017;https://epsg.io/102017 +EPSG:9821;LambertAzimEqualA-0-90-WGS84-Esfera;https://epsg.io/9821-method;https://epsg.io/9821-method;https://epsg.io/9821-method +Lambert_Azimuthal_Equal_Area;LambertAzimEqualA-0-90-WGS84-Esfera;;; +Lambert_Azimuthal_Equal_Area-0-90-WGS84;LambertAzimEqualA-0-90-WGS84-Esfera;;; +EPSG:3035;Lambert_Azimuthal_Equal_Area-1052-ETRS89;;; +urn:ogc:def:crs:EPSG::3035;Lambert_Azimuthal_Equal_Area-1052-ETRS89;;; +ETRS-LAEA;Lambert_Azimuthal_Equal_Area-1052-ETRS89;;; +SR-ORG:7297;Lambert_Azimuthal_Equal_Area-9-48-ETRS89;;; +ETRS-LCC;Lambert_Conformal_Conic-Europa-ETRS89;;; +EPSG:3034;Lambert_Conformal_Conic-Europa-ETRS89;;; +EPSG:2154;Lambert_Conformal_Conic-França-ETRS89;;; +EPSG:2062;Lambert_Conformal_Conic-Madrid1870;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26191;Lambert_Conformal_Conic-Maroc_N-Merchich;;; +EPSG:27561;Lambert_Conformal_Conic-ZoneI-NTF;;; +EPSG:27562;Lambert_Conformal_Conic-ZoneII-NTF;;; +EPSG:27563;Lambert_Conformal_Conic-ZoneIII-NTF;;; +Lambert_Conformal_Conic;Lambert_Conformal_Conic-ZoneIII-NTF;;; +EPSG:27573;Lambert_Conformal_Conic-ZoneIII_ext-NTF;;; +EPSG:27572;Lambert_Conformal_Conic-ZoneII_ext-NTF;;; +AUTO2:LCC,1,14.5,38,35,41;Lambert_Conformal_Conic_ICC_Mediterrani;;; +AUTO2:MERCATOR,1,0,0.0;Mercator-Equator-ED50-UB/ICC;;; +Mercator;Mercator-Equator-ED50-UB/ICC;;; +Mercator-ED50;Mercator-Equator-ED50-UB/ICC;;; +Mercator-ED50-UB/ICC;Mercator-Equator-ED50-UB/ICC;;; +Mercator-Ecuador-ED50-UB/ICC;Mercator-Equator-ED50-UB/ICC;;; +EPSG:3395;Mercator-Equator-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +AUTO2:MERCATOR,1,0,40.60;Mercator-IHM-485-60k-ED50-UB/ICC;;; +AUTO2:MERCATOR,1,0,41.42;Mercator-IHM-489-50k-ED50-UB/ICC;;; +AUTO2:MERCATOR_WGS84,1,0,41.42;Mercator-IHM-489-50k-WGS84;;; +EPSG:3785;Mercator-Popular-Visualisation-Sphere;;; +EPSG:3857;Mercator-Popular-Visualisation-Sphere;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +urn:ogc:def:crs:EPSG::3857;Mercator-Popular-Visualisation-Sphere;;; +EPSG:900913;Mercator-Popular-Visualisation-Sphere;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ESRI:102100;Mercator-Popular-Visualisation-Sphere;;; +EPSG:21782;ObliqueMercator-Rosenmund1903;;; +SR-ORG:6842;Sinusoidal-V5-MODIS;https://spatialreference.org/ref/sr-org/modis-sinusoidal/;https://spatialreference.org/ref/sr-org/modis-sinusoidal/;https://spatialreference.org/ref/sr-org/modis-sinusoidal/ +SR-ORG:6974;Sinusoidal-V5-MODIS;https://spatialreference.org/ref/sr-org/modis-sinusoidal-3/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-3/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-3/ +SR-ORG:6965;Sinusoidal-V5-MODIS;https://spatialreference.org/ref/sr-org/modis-sinusoidal-2/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-2/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-2/ +Sinusoidal;Sinusoidal-WGS84;;; +EPSG:3909;TransverseMercator-BalkansMGI1901;;; +EPSG:2393;TransverseMercator-Finland-KKJ;;; +EPSG:29903;TransverseMercator-Ireland1965;;; +EPSG:2039;TransverseMercator-Israel1989;;; +EPSG:3003;TransverseMercator-Monte_Mario-Italy_Z1;;; +EPSG:3021;TransverseMercator-Sweden-RT90;;; +EPSG:26710;UTM-10N-NAD27-CW;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32610;UTM-10N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32611;UTM-11N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32612;UTM-12N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32613;UTM-13N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32614;UTM-14N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32615;UTM-15N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32616;UTM-16N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32617;UTM-17N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32710;UTM-10S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32711;UTM-11S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32712;UTM-12S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32713;UTM-13S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32714;UTM-14S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32715;UTM-15S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32716;UTM-16S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26901;UTM-1N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26902;UTM-2N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26903;UTM-3N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26904;UTM-4N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26905;UTM-5N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26906;UTM-6N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26906;UTM-7N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26908;UTM-8N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26909;UTM-9N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26910;UTM-10N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26911;UTM-11N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26912;UTM-12N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26913;UTM-13N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26914;UTM-14N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26915;UTM-15N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26916;UTM-16N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26917;UTM-17N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26918;UTM-18N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26919;UTM-19N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26920;UTM-20N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26921;UTM-21N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26922;UTM-22N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26923;UTM-23N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26711;UTM-11N-NAD27-CW;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4486;UTM-13N-ITRF92;;; +EPSG:26713;UTM-13N-NAD27-MX;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4487;UTM-14N-ITRF92;;; +EPSG:26714;UTM-14N-NAD27-MX;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4488;UTM-15N-ITRF92;;; +EPSG:26715;UTM-15N-NAD27-MX;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26915;UTM-15N-NAD83;;; +EPSG:26716;UTM-16N-NAD27-BC;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:24877;UTM-17S-PSA56-P;;; +EPSG:29187;UTM-17S-SAD69-PE;;; +EPSG:32717;UTM-17S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32618;UTM-18N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29188;UTM-18S-SAD69-CH;;; +EPSG:32718;UTM-18S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29169;UTM-19N-SAD69-BR;;; +EPSG:32619;UTM-19N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:24879;UTM-19S-PSAD56-BC;;; +EPSG:24879-1201;UTM-19S-PSAD56-BC;Transformació per defecte segons https://epsg.io/24879;Transformación por defecto según https://epsg.io/24879;Default transformation according to https://epsg.io/24879 +EPSG:24879-1203;UTM-19S-PSAD56-CN;;; +EPSG:24879-1209;UTM-19S-PSAD56-V;;; +EPSG:29189;UTM-19S-SAD69-CH;;; +EPSG:32719;UTM-19S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29170;UTM-20N-SAD69-BR;;; +EPSG:32620;UTM-20N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29190;UTM-20S-SAD69-BR;;; +EPSG:32720;UTM-20S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29171;UTM-21N-SAD69-BR;;; +EPSG:32621;UTM-21N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29191;UTM-21S-SAD69-BR;;; +EPSG:32721;UTM-21S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29172;UTM-22N-SAD69-BR;;; +EPSG:32622;UTM-22N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32623;UTM-23N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32624;UTM-24N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32625;UTM-25N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32626;UTM-26N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29192;UTM-27S-SAD69-BR;;; +EPSG:32722;UTM-22S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32723;UTM-23S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32724;UTM-24S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32725;UTM-25S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32726;UTM-26S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32727;UTM-27S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32728;UTM-28S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32729;UTM-29S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29193;UTM-23S-SAD69-BR;;; +EPSG:29194;UTM-24S-SAD69-BR;;; +EPSG:29195;UTM-25S-SAD69-BR;;; +ETRS-TM26;UTM-26N-ETRS89;;; +EPSG:3038;UTM-26N-ETRS89;;; +EPSG:3039;UTM-27N-ETRS89;;; +ETRS-TM27;UTM-27N-ETRS89;;; +EPSG:32627;UTM-27N-WGS84;Ordre d'eixos preferit: est-nord (XY). Sense paràmetres TOWGS84 a https://epsg.io/;Orden de ejes preferido: est-norte (XY). Sin parámetros TOWGS84 en https://epsg.io/;Preferred axis order: east-north (XY). No TOWGS84 parameters at https://epsg.io/ +EPSG:3040;UTM-28N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX). Sin parámetros TOWGS84 en https://epsg.io/;Preferred axis order: north-east (YX). No TOWGS84 parameters at https://epsg.io/ +ETRS-TM28;UTM-28N-ETRS89;;; +EPSG:4083;UTM-28N-REGCAN95;;; +EPSG:32628;UTM-28N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:23029;UTM-29N-S/IGN;;; +EPSG:23029-0000;UTM-29N-ED50-ABDF;;; +EPSG:23029-1145;UTM-29N-ED50-PS;;; +EPSG:25829;UTM-29N-ETRS89;Ordre d'eixos preferit: est-nord (XY);Orden de ejes preferido: est-norte (XY);Preferred axis order: east-north (XY) +EPSG:3041;UTM-29N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX);Preferred axis order: north-east (YX) +urn:ogc:def:crs:EPSG::25829;UTM-29N-ETRS89;;; +ETRS-TM29;UTM-29N-ETRS89;;; +EPSG:23029-1633;UTM-29N-S/IGN;;; +EPSG:32629;UTM-29N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +urn:ogc:def:crs:EPSG::23029;UTM-29N-S/IGN;;; +EPSG:25830;UTM-30N-ETRS89;Ordre d'eixos preferit: est-nord (XY);Orden de ejes preferido: est-norte (XY);Preferred axis order: east-north (XY) +EPSG:3042;UTM-30N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX);Preferred axis order: north-east (YX) +urn:ogc:def:crs:EPSG::25830;UTM-30N-ETRS89;;; +ETRS-TM30;UTM-30N-ETRS89;;; +EPSG:23030;UTM-30N-S/IGN;;; +EPSG:23030-0000;UTM-30N-ABDF;Transformació per defecte segons https://epsg.io/23030-to-4326;Transformación por defecto según https://epsg.io/23030-to-4326;Default transformation according to https://epsg.io/23030-to-4326 +EPSG:23030-15933;UTM-30N-IP;;; +EPSG:23030-1631;UTM-30N-Balearic;;; +EPSG:23030-1635;UTM-30N-NW_IP;;; +EPSG:23030-1145;UTM-30N-PS;;; +EPSG:23030-1633;UTM-30N-S/IGN;;; +urn:ogc:def:crs:EPSG::23030;UTM-30N-S/IGN;;; +UTM-30N;UTM-30N-S/IGN;;; +EPSG:32630;UTM-30N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25831;UTM-31N-ETRS89;Ordre d'eixos preferit: est-nord (XY);Orden de ejes preferido: est-norte (XY);Preferred axis order: east-north (XY) +EPSG:3043;UTM-31N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX);Preferred axis order: north-east (YX) +urn:ogc:def:crs:EPSG::25831;UTM-31N-ETRS89;;; +ETRS-TM31;UTM-31N-ETRS89;;; +UTM-31N;UTM-31N-UB/ICC;;; +UTM-31N-ED50;UTM-31N-UB/ICC;;; +EPSG:23031;UTM-31N-UB/ICC;Excepcionalment no es fa correspondre a UTM-31N-ABDF (=https://epsg.io/23031) sinó a UTM-31N-UB/ICC per compatibilitat descendent;Excepcionalmente no se hace corresponder a UTM-31N-ABDF (=https://epsg.io/23031) sino a UTM-31N-UB/ICC por compatibilidad descendente;Exceptionally it does not correspond to UTM-31N-ABDF (=https://epsg.io/23031) but to UTM-31N-UB/ICC for backwards compatibility +EPSG:23031-0000;UTM-31N-ABDF;Transformació per defecte segons https://epsg.io/23031-to-4326;Transformación por defecto según https://epsg.io/23031-to-4326;Default transformation according to https://epsg.io/23031-to-4326 +urn:ogc:def:crs:EPSG::23031;UTM-31N-UB/ICC;;; +EPSG:32631;UTM-31N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25832;UTM-32N-ETRS89;;; +ETRS-TM32;UTM-32N-ETRS89;;; +EPSG:32632;UTM-32N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25833;UTM-33N-ETRS89;;; +ETRS-TM33;UTM-33N-ETRS89;;; +EPSG:32633;UTM-33N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:22033;UTM-33S-Camacupa1980;;; +EPSG:32730;UTM-30S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32731;UTM-31S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32732;UTM-32S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32733;UTM-33S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32734;UTM-34S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32735;UTM-35S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25834;UTM-34N-ETRS89;;; +ETRS-TM34;UTM-34N-ETRS89;;; +EPSG:2100;UTM-34N-GGRS87;;; +EPSG:32634;UTM-34N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25835;UTM-35N-ETRS89;;; +ETRS-TM35;UTM-35N-ETRS89;;; +EPSG:32635;UTM-35N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ETRS-TM36;UTM-36N-ETRS89;;; +EPSG:25836;UTM-36N-ETRS89;;; +EPSG:32636;UTM-36N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:2736;UTM-36S-Tete-MZ;;; +EPSG:32736;UTM-36S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32737;UTM-37S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32738;UTM-38S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32739;UTM-39S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32740;UTM-40S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32741;UTM-41S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32742;UTM-42S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32743;UTM-43S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32744;UTM-44S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32745;UTM-45S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32746;UTM-46S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32747;UTM-47S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32748;UTM-48S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32749;UTM-49S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32750;UTM-50S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32751;UTM-51S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32752;UTM-52S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32753;UTM-53S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32754;UTM-54S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32755;UTM-55S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32756;UTM-56S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32757;UTM-57S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32758;UTM-58S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32759;UTM-59S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32760;UTM-60S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ETRS-TM37;UTM-37N-ETRS89;;; +EPSG:25837;UTM-37N-ETRS89;;; +EPSG:32637;UTM-37N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32638;UTM-38N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32639;UTM-39N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ETRS-TM38;UTM-38N-ETRS89;;; +EPSG:25838;UTM-38N-ETRS89;;; +ETRS-TM39;UTM-39N-ETRS89;;; +EPSG:32640;UTM-40N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32641;UTM-41N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32642;UTM-42N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32643;UTM-43N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32644;UTM-44N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32645;UTM-45N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32646;UTM-46N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32647;UTM-47N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32648;UTM-48N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32649;UTM-49N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32650;UTM-50N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32651;UTM-51N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32652;UTM-52N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32653;UTM-53N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32654;UTM-54N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32655;UTM-55N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32656;UTM-56N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32657;UTM-57N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32658;UTM-58N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32659;UTM-59N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32660;UTM-60N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32759;UTM-59S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32601;UTM-1N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32602;UTM-2N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32603;UTM-3N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32604;UTM-4N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32605;UTM-5N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32606;UTM-6N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32607;UTM-7N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32608;UTM-8N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32609;UTM-9N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32701;UTM-1S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32702;UTM-2S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32703;UTM-3S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32704;UTM-4S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32705;UTM-5S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32706;UTM-6S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32707;UTM-7S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32708;UTM-8S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32709;UTM-9S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4218;lat/long-Bogota;;; +EPSG:4149;lat/long-CH1903;;; +EPSG:4230-1145;lat/long-ED50-PS;;; +EPSG:4230-1633;lat/long-ED50-S/IGN;;; +EPSG:4230-0000;lat/long-ED50-ABDF;Transformació per defecte segons https://epsg.io/4230-to-4326;Transformación por defecto según https://epsg.io/4230-to-4326;Default transformation according to https://epsg.io/4230-to-4326 +EPSG:4230;lat/long-ED50-UB/ICC;;; +lat/long-ED50;lat/long-ED50-UB/ICC;;; +EPSG:4258;lat/long-ETRS89;;; +EPSG:4686;lat/long-MAGNA;;; +EPSG:4903;lat/long-Madrid1870;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4261;lat/long-Merchich;;; +EPSG:4267;lat/long-NAD27-BC;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4269;lat/long-NAD83-AA;;; +EPSG:4275;lat/long-NTF;;; +EPSG:4190;lat/long-PosGAR98;;; +EPSG:4081;lat/long-REGCAN95;;; +EPSG:5527;lat/long-SAD69-CH;;; +EPSG:4124;lat/long-Sweden-RT90;;; +EPSG:4127;lat/long-Tete-MZ;;; +EPSG:4326;lat/long-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +urn:ogc:def:crs:EPSG::4326;lat/long-WGS84;;; +CRS:84;lat/long-WGS84;;; +Equirectangular;lat/long-WGS84;;; +lat/long;lat/long-WGS84;;; +urn:ogc:def:crs:OGC:1.3:CRS84;lat/long-WGS84;;; +EPSG:9377;Transverse-Mercator_Colombia_ONacional;;; +MAGNA-SIRGAS / Origen-Nacional;Transverse-Mercator_Colombia_ONacional;https://origen.igac.gov.co/herramientas.html;https://origen.igac.gov.co/herramientas.html;https://origen.igac.gov.co/herramientas.html diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt new file mode 100644 index 00000000..f29a5ca5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt @@ -0,0 +1,48 @@ +# +# This file derived from the public_coordsys.txt file distributed with +# CubeSTOR by CubeWerx (http://www.cubewerx.com) +# +# OGC-defined "AUTO" codes +# http://www.digitalearth.gov/wmt/auto.html +# +# Hmm, not really much point to including these as they require extra +# substitutions. See the importFromWMSAUTO() if you need these. +# +#42001,PROJCS["WGS 84 / Auto UTM%s",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["central_meridian","%.16g"],PARAMETER["latitude_of_origin",0],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42001"]] +#42002,PROJCS["WGS 84 / Auto Tr. Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["central_meridian","%.16g"],PARAMETER["latitude_of_origin",0],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42002"]] +#42003,PROJCS["WGS 84 / Auto Orthographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Orthographic"],PARAMETER["central_meridian","%.16g"],PARAMETER["latitude_of_origin","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42003"]] +#42004,PROJCS["WGS 84 / Auto Equirectangular",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["central_meridian",0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42004"]] +# +# OGC-defined extended codes (41000--41999) +# see http://www.digitalearth.gov/wmt/auto.html +# +41001,PROJCS["WGS84 / Simple Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","41001"]] +# +# CubeWerx-defined extended codes (42100--42199) +# +42101,PROJCS["WGS 84 / LCC Canada",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-95.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",49.0],PARAMETER["standard_parallel_2",77.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",-8000000.0],UNIT["Meter",1],AUTHORITY["EPSG","42101"]] +#EPSG:42102,"PROJCS[\"NAD83 / BC Albers\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS_1980\",6378137,298.257222101]],PRIMEM[\"Greenwich\",0],UNIT[\"Decimal_Degree\",0.0174532925199433]],PROJECTION[\"Albers_conic_equal_area\"],PARAMETER[\"central_meridian\",-126.0],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"standard_parallel_1\",50.0],PARAMETER[\"standard_parallel_2\",58.5],PARAMETER[\"false_easting\",1000000.0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]" +42103,PROJCS["WGS 84 / LCC USA",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1978",6378135,298.26]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-100.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",33.0],PARAMETER["standard_parallel_2",45.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42103"]] +42104,PROJCS["NAD83 / MTM zone 8 Quebec",GEOGCS["GRS80",DATUM["GRS_1980",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42104"]] +42105,PROJCS["WGS84 / Merc NorthAm",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42105"]] +42106,PROJCS["WGS84 / Lambert Azim Mozambique",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["Sphere_radius_6370997_m",6370997,0]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_equal_area"],PARAMETER["latitude_of_origin",5],PARAMETER["central_meridian",20],PARAMETER["standard_parallel_1",5],PARAMETER["standard_parallel_2",5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42106"]] +# +# CubeWerx-customer definitions (42300--42399) +# +42301,PROJCS["NAD27 / Polar Stereographic / CM=-98",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.978698213901]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",-98.0],PARAMETER["standard_parallel_1",90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42301"]] +42302,PROJCS["JapanOrtho.09 09",GEOGCS["Lon/Lat.Tokyo Datum",DATUM["Tokyo Datum",SPHEROID["anon",6377397.155,299.15281310608]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["Central_Meridian",139.833333333333],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Latitude_of_Origin",36],PARAMETER["Scale_Factor",0.9999],UNIT["Meter",1],AUTHORITY["EPSG","42302"]] +42303,PROJCS["NAD83 / Albers NorthAm",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Albers_conic_equal_area"],PARAMETER["central_meridian",-96.0],PARAMETER["latitude_of_origin",23],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42303"]] +42304,PROJCS["NAD83 / NRCan LCC Canada",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-95.0],PARAMETER["latitude_of_origin",49.0],PARAMETER["standard_parallel_1",49.0],PARAMETER["standard_parallel_2",77.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42304"]] +42305,PROJCS["France_II",GEOGCS["GCS_NTF_Paris",DATUM["Nouvelle_Triangulation_Francaise",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Paris",2.337229166666667],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",2200000],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",45.898918964419],PARAMETER["Standard_Parallel_2",47.696014502038],PARAMETER["Latitude_Of_Origin",46.8],UNIT["Meter",1],AUTHORITY["EPSG","42305"]] +42306,PROJCS["NAD83/QC_LCC",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-68.5],PARAMETER["latitude_of_origin",44],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",60],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42306"]] +42307,PROJCS["NAD83 / Texas Central - feet",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.8833333333333],PARAMETER["standard_parallel_2",30.1166666666667],PARAMETER["latitude_of_origin",29.6666666666667],PARAMETER["central_meridian",-100.333333333333],PARAMETER["false_easting",2296583.33333333333333],PARAMETER["false_northing",9842500],UNIT["US_Foot",0.30480060960121924],AUTHORITY["EPSG","42307"]] +42308,PROJCS["NAD27 / California Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.978698213901]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Albers_conic_equal_area"],PARAMETER["central_meridian",-120.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],UNIT["Meter",1],AUTHORITY["EPSG","42308"]] +42309,PROJCS["NAD 83 / LCC Canada AVHRR-2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-95.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",49.0],PARAMETER["standard_parallel_2",77.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42309"]] +42310,PROJCS["WGS84+GRS80 / Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42310"]] +42311,PROJCS["NAD83 / LCC Statcan",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-91.866667],PARAMETER["latitude_of_origin",63.390675],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["false_easting",6200000],PARAMETER["false_northing",3000000],UNIT["Meter",1],AUTHORITY["EPSG","42311"]] +# +# BC-Forestry/NFIS code +# +100001,GEOGCS["NAD83 / NFIS Seconds",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Second",4.84813681109536e-06],AUTHORITY["EPSG","100001"]] +100002,PROJCS["NAD83 / Austin",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.8833333333333],PARAMETER["standard_parallel_2",30.1166666666667],PARAMETER["latitude_of_origin",29.6666666666667],PARAMETER["central_meridian",-100.333333333333],PARAMETER["false_easting",2296583.333333],PARAMETER["false_northing",9842500.0000000],UNIT["Meter",1],AUTHORITY["EPSG","100002"]] +900913,PROJCS["Google Maps Global Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"]] diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/default.rsc b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/default.rsc new file mode 100644 index 0000000000000000000000000000000000000000..2fb03e826bdcb0aa99b045a168ee0dfc39196195 GIT binary patch literal 463632 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

EI6gJ?$aOWmgB%F9U6VX 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∾Tp30SwO5J>Q%3X5^!E@D2?V|O72cyPCTcc!JO1(QasP(JRXs5X z!aJRYG#pbi9`c7Nb%ZG+>GfP8DfR_AyU(BvH_+FA6H(M4NxdkQk>dhrHAXxGUrF~> zk!1@{I>Ma#jw=n4c1>%TU(3Q>t%X&HjCG7q-oMj z0z*x7>cvBR{NXkLine{kX}=F$un#^v%E^-_`El_Enx=k-aCP!n09~TZW-}f=dbDQc z%9V2~D=W#!$iUAqqoIx>gb_x91!(n5WGJ#KdwHBCi0x{i+p&?35AuFa*Tr4cHXie0;QT`w&yeSZ7) z?LQOXGd01c;hjqgf5paMzKO@<;mD2;(BUUR7@)qs9<$jDz%6?n1O3g&vh*_*_gwtM)-|xp{GLfF1j@@o2Gdc&2DrrmvQ3xZ$ux^M) z{t~DXV`F3c0Nidj>FMb`%a(mTnW+d4jt+3|+9d!|Qc@U1L34d*My;u-p|7tGhr@xw zd528nPaYN*Rb-|XqERIRNC-kLT3mAy|wLIMSAi--sg(9qC8c6K&z@2OyO$yNZa+b^OT zRfM1J{yV|_-6;Qg5WO%62*qW2(H{-_m1eWK>iqfhudCJSoed2Q%8rf>7A;ytN=ix( zAm`-d;PraBd-pEOmoJxJw){L;7im(=XgiC^WMaXB1zZj4$)5f!vu4dgk|dM^jTnta zX3d&~*XyOdy&Z$WfQkO%xAPM3n{G$G)@HLs0N(-46+V-BAGkwI`4@ z1?0_%4E#tGLa%ANtR)gZkwR!tx!ks&q{u8{qh + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd new file mode 100644 index 00000000..80b6f999 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd @@ -0,0 +1,887 @@ + + + + + + Root element + + + + + + + + + + + + + + May be repeated + + + + + May be repeated + + + + + + Allowed only if subClass="VRTWarpedDataset" + + + + + Allowed only if subClass="VRTPansharpenedDataset" + + + + + Allowed only if subClass="VRTProcessedDataset" + + + + + Allowed only if subClass="VRTProcessedDataset" + + + + + only for multidimensional dataset + + + + + + + + + + + + + + + + + Added in GDAL 3.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Processing step of a VRTPansharpenedDataset + + + + + Builtin allowed names are BandAffineCombination, LUT, LocalScaleOffset, Trimming. More algorithms can be registered at run-time. + + + + + + + + + + Argument of a processing function + + + + + + Allowed names are specific of each processing function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gfs.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gfs.xsd new file mode 100644 index 00000000..936343b3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gfs.xsd @@ -0,0 +1,246 @@ + + + + + + + + + Set this element to true if all features belonging to the same layer are written sequentially in the file. The reader will then avoid unnecessary resets when layers are read completely one after the other. To get the best performance, the layers must be read in the order they appear in the file. Cf https://gdal.org/drivers/vector/gml.html#performance-issues-with-large-multi-layer-gml-files + + + + + + + + Name of the feature type; essentially used as layer name. Can be different than the name of the XML element that represents such a feature in XML data. Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation). + Different GMLFeatureClass elements should have a different name. + + + + + + Defines the path in a given XML document to the elements that represent the GML feature. Can use '|' as element separator. Namespace prefixes of path elements are insignificant. + As multiple ElementPath-elements are not allowed per GMLFeatureClass, if a feature type was encoded in different places in an XML document (e.g. on collection member level, as well as inline in some other feature), the gfs file would have to contain multiple GMLFeatureClass entries, with different ElementPaths. + + + + + Defines a geometry column. This element may be repeated if there are several geometry columns. For backward compatibility with older GDAL versions, the GDAL .gfs writer will only write this element if there are several geometry columns, but it is allowed to use it if there is just a single geometry column. GeomPropertyDefn is mutually exclusive with GeometryName, GeometryElementPath and GeometryType + + + + + Name of a geometric property of the feature. Can be different than the name of the XML element that represents that property. Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation, or a combination of names in the element path). Mutually exclusive with GeomPropertyDefn + + + + + Defines the path to the XML element that represents the geometry property within the XML element of the GML feature. Can use '|' as element separator. Namespace prefixes of path elements are insignificant. NOTE: The path should not include the actual GML geometry element itself. Used in combination with the GeometryName. Mutually exclusive with GeomPropertyDef. + + + + + Used in combination with the GeometryName. Mutually exclusive with GeomPropertyDef. + + + + + Defines the SRS of all geometry columns of the layer. Typically a string of the form urn:ogc:def:crs:EPSG::XXXX + + + + + Contains optional information about the feature count of the layer and its extent. This should not be used in .gfs templates, but for specific instantiation of a .gfs on a given .gml file + + + + + + Number of features in the layer + + + + + Minimum X value of the layer extent. + + + + + Maximum X value of the layer extent. + + + + + Minimum Y value of the layer extent. + + + + + Maximum X value of the layer extent. + + + + + + + + + + + + + + + The names of all GMLFeatureClasses within the GMLFeatureClassList must be unique. + + + + + + + + Geometry type, expressed either as a numeric value matching the OGRwkbGeometryType enumeration or a string ([Multi]?Point|[Multi]?LineString|[Multi]?Polygon|GeometryCollection|CircularString|CurvePolygon|[Multi]Curve|[Multi]Surface|Triangle|PolyhedralSurface|TIN)Z?M? or None to indicate a layer without geometry field. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of a geometric property of the feature. Can be different than the name of the XML element that represents that property. Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation, or a combination of names in the element path). + + + + + Defines the path to the XML element that represents the geometry property within the XML element of the GML feature. Can use '|' as element separator. Namespace prefixes of path elements are insignificant. NOTE: The path should not include the actual GML geometry element itself. + + + + + + + + + + Can be set to false to indicate that null/missing geometries are forbidden. + + + + + + + + + + + Name of a non-geometric property of the feature. Can be different than the name of the XML element that represents that property. + +NOTE: Properties with name suffix "_href" - typically used when the ElementPath ends in @xlink:href - can be used to build junction tables. For further details, see https://gdal.org/drivers/vector/gml.html#building-junction-tables. + +Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation, or a combination of names in the element path). + + + + + Defines the path to the XML element that represents the property within the XML element of the GML feature. Can use '|' as element separator. The last path segment may have an XML attribute name as suffix, using '@' as separator (e.g., width@uom). Namespace prefixes of path elements are insignificant. + + + + + Field type. Complex may be used to indicate that the value of the element is not a simple type. + + + + + + + + + + + + + + + + + + + Can be set to false to indicate that null/missing values are forbidden. + + + + + Further specializes the property type. Allowed combinations are: (Type: Integer, Subtype: Short, Integer64), (Type: IntegerList, Subtype: Integer64), (Type: Real, Subtype: Float), (Type: String, Subtype: Boolean, Date, Time, Datetime), (Type: StringList, Subtype: Boolean) + + + + + + + + + + + + + + + + Can be used to create multiple properties from the same XML element, based upon a set of mutually exclusive conditions. For further details, and examples, see https://gdal.org/drivers/vector/gml.html#using-conditions-on-xml-attributes + + + + + When set to true, indicates that values of that field are unique through all the features of the layer + + + + + Maximum width of the string representation of the values of the field. Supported use cases: (Type: String, Subtype is NOT Boolean, Date, Time, or Datetime), (Type: Integer), (Type: Real) + + + + + Only applies to Real. Maximum decimal precision (i.e. number of digits after the decimal point) of the values of the field. + + + + + Description of the field (added in GDAL 3.7) + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xml new file mode 100644 index 00000000..831a32d3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd new file mode 100644 index 00000000..717f674d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd @@ -0,0 +1,66 @@ + + + + + + The registry contains namespace definitions, which are used to find a single .gfs or XML schema file with which the GML driver shall process the whole GML data file. The GML driver uses the schema file defined for the first matching (prefix-)namespace-featureType combination that is found in the GML data. NOTE: The order of the namespaces within the GML registry file is important when loading a GML file that contains features from multiple namespaces. Only the feature types defined in the selected schema will be recognized. In other words, if the GML file contains features from multiple namespaces, then only the ones that match the definitions from the chosen schema will be read. + + + + + + Defines a namespace, together with the feature types that belong to it. + +NOTE: Multiple feature types within the namespace may refer to the same schema (which should then include definitions for these feature types). + + + + + + Definition of a feature type, with XML attributes to match given GML data and to define a .gfs or XML schema that contains the definition of the feature type. NOTE: The schema may contain definitions for multiple feature types. + + + + + Name of the XML element that is used to identify the feature type. Typically the local name of an XML element that encodes a feature. However, it can also be the local name of a different element that can be used in combination with @elementValue to produce a match for this feature type definition within the namespace. + + + + + Used in combination with @elementName. If present, a match for this feature type element is only produced if an XML element whose local-name (and prefix, if defined in the namespace) equals the value of @elementName and whose value equals the value of @elementValue is found in the GML data. For example: If namespace/@prefix = 'ex', featureType/@elementName = 'typeOfFeature', and featureType/@elementValue = 'FT', then a match is produced if <ex:typeOfFeature>FT</ex:typeOfFeature> is present in the GML data. + + + + + OGR .gfs file in which the feature type is defined (possibly together with other feature types). The GML driver will parse the layer definitions from that file. The schema location can be given as URL (http and https), absolute file path, and relative file path (relative to the location of the registry file). + + + + + XML schema file in which the feature type is defined (possibly together with other feature types). The GML driver will attempt to parse it and create layer definitions. The schema location can be given as URL (http and https), absolute file path, and relative file path (relative to the location of the registry file). + + + + + + + + Namespace prefix assigned to the features of this namespace in actual GML data. The prefix will be looked up in the first bytes of the GML file (e.g. xmlns:abc="http://example.org/abc"). It is used to confirm the match of the namespace uri (defined by @uri). NOTE-1: Case is important - the parser looks for the exact string, i.e., 'ex' is treated differently than 'EX'. If actual data may use different prefixes for the same namespace URI, multiple namespace elements must be added to the gml_registry - one for each applicable prefix. NOTE-2: The prefix can be omitted in the namespace definition. In that case, a match is only produced if a) the namespace uri is found in any namespace declaration in the GML file (typically as default namespace in the root element, e.g., xmlns="http://example.org/abc") and b) an XML element without XML namespace prefix, and local-name being equal to the @elementName of the feature type (plus a possibly defined @elementValue as textual value), is found. + + + + + Namespace URI as found in the first bytes of the GML file. (e.g. "http://example.org/abc" in the namespace declaration for xmlns:abc="http://example.org/abc"). + + + + + When set to true, it means that the SRS defined by a srsName attribute found in the global gml:Envelope element applies to all features of the GML file. + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_center.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_center.csv new file mode 100644 index 00000000..be37edd4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_center.csv @@ -0,0 +1,251 @@ +code,name +0,"WMO Secretariat" +1,"Melbourne" +2,"Melbourne" +3,"Melbourne" +4,"Moscow" +5,"Moscow" +6,"Moscow" +7,"US-NCEP" +8,"US-NWSTG" +9,"US-Other" +10,"Cairo" +11,"Cairo" +12,"Dakar" +13,"Dakar" +14,"Nairobi" +15,"Nairobi" +16,"Casablanca" +17,"Tunis" +18,"Tunis Casablanca" +19,"Tunis Casablanca" +20,"Las Palmas" +21,"Algiers" +22,"ACMAD" +23,"Mozambique" +24,"Pretoria" +25,"La Réunion" +26,"Khabarovsk" +27,"Khabarovsk" +28,"New Delhi" +29,"New Delhi" +30,"Novosibirsk" +31,"Novosibirsk" +32,"Tashkent" +33,"Jeddah" +34,"Tokyo" +35,"Tokyo" +36,"Bangkok" +37,"Ulan Bator" +38,"Beijing" +39,"Beijing" +40,"Seoul" +41,"Buenos Aires" +42,"Buenos Aires" +43,"Brasilia" +44,"Brasilia" +45,"Santiago" +46,"Brazilian Space Agency" +47,"Colombia" +48,"Ecuador" +49,"Peru" +50,"Venezuela" +51,"Miami" +52,"Miami-NHC" +53,"Montreal" +54,"Montreal" +55,"San Francisco" +56,"ARINC Centre" +57,"US-Air Force Weather" +58,"US-Fleet Meteorology and Oceanography" +59,"US-FSL" +60,"US-NCAR" +61,"US-Service ARGOS" +62,"US-Naval Oceanographic Office" +64,"Honolulu" +65,"Darwin" +66,"Darwin" +67,"Melbourne" +69,"Wellington" +70,"Wellington" +71,"Nadi" +72,"Singapore" +73,"Malaysia" +74,"UK-Met-Exeter" +75,"UK-Met-Exeter" +76,"Moscow" +78,"Offenbach" +79,"Offenbach" +80,"Rome" +81,"Rome" +82,"Norrköping" +83,"Norrköping" +84,"Toulouse" +85,"Toulouse" +86,"Helsinki" +87,"Belgrade" +88,"Oslo" +89,"Prague" +90,"Episkopi" +91,"Ankara" +92,"Frankfurt/Main" +93,"London" +94,"Copenhagen" +95,"Rota" +96,"Athens" +97,"ESA-European Space Agency" +98,"ECMWF" +99,"DeBilt" +100,"Brazzaville" +101,"Abidjan" +102,"Libyan Arab Jamahiriya" +103,"Madagascar" +104,"Mauritius" +105,"Niger" +106,"Seychelles" +107,"Uganda" +108,"Tanzania" +109,"Zimbabwe" +110,"Hong-Kong, China" +111,"Afghanistan" +112,"Bahrain" +113,"Bangladesh" +114,"Bhutan" +115,"Cambodia" +116,"Democratic People's Republic of Korea" +117,"Islamic Republic of Iran" +118,"Iraq" +119,"Kazakhstan" +120,"Kuwait" +121,"Kyrgyz Republic" +122,"Lao People's Democratic Republic" +123,"Macao, China" +124,"Maldives" +125,"Myanmar" +126,"Nepal" +127,"Oman" +128,"Pakistan" +129,"Qatar" +130,"Republic of Yemen" +131,"Sri Lanka" +132,"Tajikistan" +133,"Turkmenistan" +134,"United Arab Emirates" +135,"Uzbekistan" +136,"Socialist Republic of Viet Nam" +140,"Bolivia" +141,"Guyana" +142,"Paraguay" +143,"Suriname" +144,"Uruguay" +145,"French Guyana" +146,"Brazilian Navy Hydrographic Centre" +150,"Antigua and Barbuda" +151,"Bahamas" +152,"Barbados" +153,"Belize" +154,"British Caribbean Territories" +155,"San Jose" +156,"Cuba" +157,"Dominica" +158,"Dominican Republic" +159,"El Salvador" +160,"US-NESDIS" +161,"US-OAR" +162,"Guatemala" +163,"Haiti" +164,"Honduras" +165,"Jamaica" +166,"Mexico" +167,"Netherlands Antilles and Aruba" +168,"Nicaragua" +169,"Panama" +170,"Saint Lucia NMC" +171,"Trinidad and Tobago" +172,"French Departments" +190,"Cook Islands" +191,"French Polynesia" +192,"Tonga" +193,"Vanuatu" +194,"Brunei" +195,"Indonesia" +196,"Kiribati" +197,"Federated States of Micronesia" +198,"New Caledonia" +199,"Niue" +200,"Papua New Guinea" +201,"Philippines" +202,"Samoa" +203,"Solomon Islands" +210,"Frascati (ESA/ESRIN)" +211,"Lanion" +212,"Lisboa" +213,"Reykiavik" +214,"Madrid" +215,"Zürich" +216,"Service ARGOS Toulouse" +217,"Bratislava" +218,"Budapest" +219,"Ljubljana" +220,"Warsaw" +221,"Zagreb" +222,"Albania" +223,"Armenia" +224,"Austria" +225,"Azerbaijan" +226,"Belarus" +227,"Belgium" +228,"Bosnia and Herzegovina" +229,"Bulgaria" +230,"Cyprus" +231,"Estonia" +232,"Georgia" +233,"Dublin" +234,"Israel" +235,"Jordan" +236,"Latvia" +237,"Lebanon" +238,"Lithuania" +239,"Luxembourg" +240,"Malta" +241,"Monaco" +242,"Romania" +243,"Syrian Arab Republic" +244,"The former Yugoslav Republic of Macedonia" +245,"Ukraine" +246,"Republic of Moldova" +254,"EUMETSAT Operation Centre" +256,"Angola" +257,"Benin" +258,"Botswana" +259,"Burkina Faso" +260,"Burundi" +261,"Cameroon" +262,"Cape Verde" +263,"Central African republic" +264,"Chad" +265,"Comoros" +266,"Democratic Republic of the Congo" +267,"Djibouti" +268,"Eritrea" +269,"Ethiopia" +270,"Gabon" +271,"Gambia" +272,"Ghana" +273,"Guinea" +274,"Guinea Bissau" +275,"Lesotho" +276,"Liberia" +277,"Malawi" +278,"Mali" +279,"Mauritania" +280,"Namibia" +281,"Nigeria" +282,"Rwanda" +283,"Sao Tome and Principe" +284,"Sierra Leone" +285,"Somalia" +286,"Sudan" +287,"Swaziland" +288,"Togo" +289,"Zambia" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_process.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_process.csv new file mode 100644 index 00000000..6d1aed1d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_process.csv @@ -0,0 +1,102 @@ +center_code,process_code,name +7,2,"Ultra Violet Index Model" +7,3,"NCEP/ARL Transport and Dispersion Model" +7,4,"NCEP/ARL Smoke Model" +7,5,"Satellite Derived Precipitation and temperatures, from IR" +7,6,"NCEP/ARL Dust Model" +7,10,"Global Wind-Wave Forecast Model" +7,11,"Global Multi-Grid Wave Model (Static Grids)" +7,12,"Probabilistic Storm Surge" +7,19,"Limited-area Fine Mesh (LFM) analysis" +7,25,"Snow Cover Analysis" +7,30,"Forecaster generated field" +7,31,"Value added post processed field" +7,39,"Nested Grid forecast Model (NGM)" +7,42,"Global Optimum Interpolation Analysis (GOI) from GFS model" +7,43,"Global Optimum Interpolation Analysis (GOI) from 'Final' run" +7,44,"Sea Surface Temperature Analysis" +7,45,"Coastal Ocean Circulation Model" +7,46,"HYCOM - Global" +7,47,"HYCOM - North Pacific basin" +7,48,"HYCOM - North Atlantic basin" +7,49,"Ozone Analysis from TIROS Observations" +7,52,"Ozone Analysis from Nimbus 7 Observations" +7,53,"LFM-Fourth Order Forecast Model" +7,64,"Regional Optimum Interpolation Analysis (ROI)" +7,68,"80 wave triangular, 18-layer Spectral model from GFS model" +7,69,"80 wave triangular, 18 layer Spectral model from 'Medium Range Forecast' run" +7,70,"Quasi-Lagrangian Hurricane Model (QLM)" +7,73,"Fog Forecast model - Ocean Prod. Center" +7,74,"Gulf of Mexico Wind/Wave" +7,75,"Gulf of Alaska Wind/Wave" +7,76,"Bias corrected Medium Range Forecast" +7,77,"126 wave triangular, 28 layer Spectral model from GFS model" +7,78,"126 wave triangular, 28 layer Spectral model from 'Medium Range Forecast' run" +7,79,"Backup from the previous run" +7,80,"62 wave triangular, 28 layer Spectral model from 'Medium Range Forecast' run" +7,81,"Analysis from GFS (Global Forecast System)" +7,82,"Analysis from GDAS (Global Data Assimilation System)" +7,84,"MESO ETA Model (currently 12 km)" +7,86,"RUC Model from FSL (isentropic; scale: 60km at 40N)" +7,87,"CAC Ensemble Forecasts from Spectral (ENSMB)" +7,88,"NOAA Wave Watch III (NWW3) Ocean Wave Model" +7,89,"Non-hydrostatic Meso Model (NMM) Currently 8 km)" +7,90,"62 wave triangular, 28 layer spectral model extension of the 'Medium Range Forecast' run" +7,91,"62 wave triangular, 28 layer spectral model extension of the GFS model" +7,92,"62 wave triangular, 28 layer spectral model run from the 'Medium Range Forecast' final analysis" +7,93,"62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the 'Medium Range Forecast' run" +7,94,"T170/L42 Global Spectral Model from MRF run" +7,95,"T126/L42 Global Spectral Model from MRF run" +7,96,"Global Forecast System Model" +7,98,"Climate Forecast System Model" +7,100,"RUC Surface Analysis (scale: 60km at 40N)" +7,101,"RUC Surface Analysis (scale: 40km at 40N)" +7,105,"RUC Model from FSL (isentropic; scale: 20km at 40N)" +7,107,"Global Ensemble Forecast System (GEFS)" +7,108,"LAMP" +7,109,"RTMA (Real Time Mesoscale Analysis)" +7,110,"NAM Model - 15km version" +7,111,"NAM model, generic resolution" +7,112,"WRF-NMM (Nondydrostatic Mesoscale Model) model, generic resolution" +7,113,"Products from NCEP SREF processing" +7,114,"NAEFS Products from joined NCEP, CMC global ensembles" +7,115,"Downscaled GFS from NAM eXtension" +7,116,"WRF-EM (Eulerian Mass-core) model, generic resolution " +7,120,"Ice Concentration Analysis" +7,121,"Western North Atlantic Regional Wave Model" +7,122,"Alaska Waters Regional Wave Model" +7,123,"North Atlantic Hurricane Wave Model" +7,124,"Eastern North Pacific Regional Wave Model" +7,125,"North Pacific Hurricane Wave Model" +7,126,"Sea Ice Forecast Model" +7,127,"Lake Ice Forecast Model" +7,128,"Global Ocean Forecast Model" +7,129,"Global Ocean Data Analysis System (GODAS)" +7,130,"Merge of fields from the RUC, NAM, and Spectral Model" +7,131,"Great Lakes Wave Model" +7,140,"North American Regional Reanalysis (NARR)" +7,141,"Land Data Assimilation and Forecast System" +7,150,"NWS River Forecast System (NWSRFS)" +7,151,"NWS Flash Flood Guidance System (NWSFFGS)" +7,152,"WSR-88D Stage II Precipitation Analysis" +7,153,"WSR-88D Stage III Precipitation Analysis" +7,180,"Quantitative Precipitation Forecast" +7,181,"River Forecast Center Quantitative Precipitation Forecast mosaic" +7,182,"River Forecast Center Quantitative Precipitation estimate mosaic" +7,183,"NDFD product generated by NCEP/HPC" +7,184,"Climatological Calibrated Precipiation Analysis - CCPA" +7,190,"National Convective Weather Diagnostic" +7,191,"Current Icing Potential automated product" +7,192,"Analysis product from NCEP/AWC" +7,193,"Forecast product from NCEP/AWC" +7,195,"Climate Data Assimilation System 2 (CDAS2)" +7,196,"Climate Data Assimilation System 2 (CDAS2)" +7,197,"Climate Data Assimilation System (CDAS)" +7,198,"Climate Data Assimilation System (CDAS)" +7,199,"Climate Forecast System Reanalysis (CFSR)" +7,200,"CPC Manual Forecast Product" +7,201,"CPC Automated Product" +7,210,"EPA Air Quality Forecast" +7,211,"EPA Air Quality Forecast" +7,215,"SPC Manual Forecast Product" +7,220,"NCEP/OPC automated product" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv new file mode 100644 index 00000000..af8cf6f8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv @@ -0,0 +1,63 @@ +center_code,subcenter_code,name +7,1,"NCEP Re-Analysis Project" +7,2,"NCEP Ensemble Products" +7,3,"NCEP Central Operations" +7,4,"Environmental Modeling Center" +7,5,"Hydrometeorological Prediction Center" +7,6,"Ocean Prediction Center" +7,7,"Climate Prediction Center" +7,8,"Aviation Weather Center" +7,9,"Storm Prediction Center" +7,10,"Tropical Prediction Center" +7,11,"Techniques Development Laboratory" +7,12,"NESDIS Office of Research and Applications" +7,13,"FAA" +7,14,"Meteorological Development Laboratory (MDL)" +7,15,"North American Regional Reanalysis (NARR) Project" +7,16,"Space Environment Center" +8,0,"National Digital Forecast Database" +161,1,"Great Lakes Environmental Research Laboratory" +161,2,"Forecast Systems Laboratory" +74,1,"Shanwick Oceanic Area Control Centre" +74,2,"Fucino" +74,3,"Gatineau" +74,4,"Maspalomas" +74,5,"ESA ERS Central Facility" +74,6,"Prince Albert" +74,7,"West Freugh" +74,13,"Tromso" +74,21,"Agenzia Spaziale Italiana (Italy)" +74,22,"Centre National de la Recherche Scientifique (France)" +74,23,"GeoForschungsZentrum (Germany)" +74,24,"Geodetic Observatory Pecny (Czech Republic)" +74,25,"Institut d'Estudis Espacials de Catalunya (Spain)" +74,26,"Swiss Federal Office of Topography" +74,27,"Nordic Commission of Geodesy (Norway)" +74,28,"Nordic Commission of Geodesy (Sweden)" +74,29,"Institute de Geodesie National (France)" +74,30,"Bundesamt für Kartographie und Geodäsie (Germany)" +74,31,"Institute of Engineering Satellite Surveying and Geodesy (U.K.)" +254,10,"Tromso (Norway)" +254,10,"Maspalomas (Spain)" +254,30,"Kangerlussuaq (Greenland)" +254,40,"Edmonton (Canada)" +254,50,"Bedford (Canada)" +254,60,"Gander (Canada)" +254,70,"Monterey (USA)" +254,80,"Wallops Island (USA)" +254,90,"Gilmor Creek (USA)" +254,100,"Athens (Greece)" +98,231,"CNRM, Meteo France Climate Centre (HIRETYCS)" +98,232,"MPI, Max Planck Institute Climate Centre (HIRETYCS)" +98,233,"UKMO Climate Centre (HIRETYCS)" +98,234,"ECMWF (DEMETER)" +98,235,"INGV-CNR (Bologna, Italy)(DEMETER)" +98,236,"LODYC (Paris, France)(DEMETER)" +98,237,"DMI (Copenhagen, Denmark)(DEMETER)" +98,238,"INM (Madrid, Spain)(DEMETER)" +98,239,"CERFACS (Toulouse, France)(DEMETER)" +98,240,"ECMWF (PROVOST)" +98,241,"Meteo France (PROVOST)" +98,242,"EDF (PROVOST)" +98,243,"UKMO (PROVOST)" +98,244,"Biometeorology group, University of Veterinary Medicine, Vienna (ELDAS)" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv new file mode 100644 index 00000000..0dc3f871 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TMP","Temperature","K","UC_K2F" +1,"VTMP","Virtual temperature","K","UC_K2F" +2,"POT","Potential temperature","K","UC_K2F" +3,"EPOT","Pseudo-adiabatic potential temperature","K","UC_K2F" +4,"TMAX","Maximum temperature","K","UC_K2F" +5,"TMIN","Minimum temperature","K","UC_K2F" +6,"DPT","Dew point temperature","K","UC_K2F" +7,"DEPR","Dew point depression","K","UC_NONE" +8,"LAPR","Lapse rate","K/m","UC_NONE" +9,"TMPA","Temperature anomaly","K","UC_K2F" +10,"LHTFL","Latent heat net flux","W/(m^2)","UC_NONE" +11,"SHTFL","Sensible heat net flux","W/(m^2)","UC_NONE" +12,"HEATX","Heat index","K","UC_K2F" +13,"WCF","Wind chill factor","K","UC_K2F" +14,"MINDPD","Minimum dew point depression","K","UC_K2F" +15,"VPTMP","Virtual potential temperature","K","UC_K2F" +16,"SNOHF","Snow phase change heat flux","W/m^2","UC_NONE" +17,"SKINT","Skin temperature","K","UC_K2F" +18,"SNOT","Snow Temperature (top of snow)","K","UC_K2F" +19,"TTCHT","Turbulent Transfer Coefficient for Heat","Numeric","UC_NONE" +20,"TDCHT","Turbulent Diffusion Coefficient for Heat","m^2/s","UC_NONE" +21,"APTMP","Apparent Temperature","K","UC_K2F" +22,"TTSWR","Temperature Tendency due to Short-Wave Radiation","K/s","UC_NONE" +23,"TTLWR","Temperature Tendency due to Long-Wave Radiation","K/s","UC_NONE" +24,"TTSWRCS","Temperature Tendency due to Short-Wave Radiation, Clear Sky","K/s","UC_NONE" +25,"TTLWRCS","Temperature Tendency due to Long-Wave Radiation, Clear Sky","K/s","UC_NONE" +26,"TTPARM","Temperature Tendency due to parameterizations","K/s","UC_NONE" +27,"WETBT","Wet Bulb Temperature","K","UC_K2F" +28,"UCTMP","Unbalanced Component of Temperature","K","UC_K2F" +29,"TMPADV","Temperature Advection","K/s","UC_NONE" +30,"","Latent heat net flux due to evaporation","W m-2","UC_NONE" +31,"","Latent heat net flux due to sublimation","W m-2","UC_NONE" +32,"","Wet-bulb potential temperature","K","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv new file mode 100644 index 00000000..b728632c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"SPFH","Specific humidity","kg/kg","UC_NONE" +1,"RH","Relative humidity","%","UC_NONE" +2,"MIXR","Humidity mixing ratio","kg/kg","UC_NONE" +3,"PWAT","Precipitable water","kg/(m^2)","UC_NONE" +4,"VAPP","Vapor pressure","Pa","UC_NONE" +5,"SATD","Saturation deficit","Pa","UC_NONE" +6,"EVP","Evaporation","kg/(m^2)","UC_InchWater" +7,"PRATE","Precipitation rate","kg/(m^2 s)","UC_NONE" +8,"APCP","Total precipitation","kg/(m^2)","UC_InchWater" +9,"NCPCP","Large scale precipitation","kg/(m^2)","UC_NONE" +10,"ACPCP","Convective precipitation","kg/(m^2)","UC_NONE" +11,"SNOD","Snow depth","m","UC_M2Inch" +12,"SRWEQ","Snowfall rate water equivalent","kg/(m^2 s)","UC_NONE" +13,"WEASD","Water equivalent of accumulated snow depth","kg/(m^2)","UC_NONE" +14,"SNOC","Convective snow","kg/(m^2)","UC_NONE" +15,"SNOL","Large scale snow","kg/(m^2)","UC_NONE" +16,"SNOM","Snow melt","kg/(m^2)","UC_NONE" +17,"SNOAG","Snow age","day","UC_NONE" +18,"ABSH","Absolute humidity","kg/(m^3)","UC_NONE" +19,"PTYPE","Precipitation type","0=No precipitation; 1=Rain; 2=Thunderstorm; 3=Freezing rain; 4=Mixed/ice; 5=Snow; 6=Wet snow; 7=Mixture of rain and snow; 8=Ice pellets; 9=Graupel; 10=Hail; 11=Drizzle; 12=Freezing drizzle; 13-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +20,"ILIQW","Integrated liquid water","kg/(m^2)","UC_NONE" +21,"TCOND","Condensate","kg/kg","UC_NONE" +22,"CLWMR","Cloud mixing ratio","kg/kg","UC_NONE" +23,"ICMR","Ice water mixing ratio","kg/kg","UC_NONE" +24,"RWMR","Rain mixing ratio","kg/kg","UC_NONE" +25,"SNMR","Snow mixing ratio","kg/kg","UC_NONE" +26,"MCONV","Horizontal moisture convergence","kg/(kg s)","UC_NONE" +27,"MAXRH","Maximum relative humidity","%","UC_NONE" +28,"MAXAH","Maximum absolute humidity","kg/(m^3)","UC_NONE" +29,"ASNOW","Total snowfall","m","UC_M2Inch" +30,"PWCAT","Precipitable water category","0-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +31,"HAIL","Hail","m","UC_NONE" +32,"GRLE","Graupel (snow pellets)","kg/kg","UC_NONE" +33,"CRAIN","Categorical rain","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +34,"CFRZR","Categorical freezing rain","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +35,"CICEP","Categorical ice pellets","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +36,"CSNOW","Categorical snow","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +37,"CPRAT","Convective precipitation rate","kg/(m^2*s)","UC_NONE" +38,"MCONV","Horizontal moisture divergence","kg/(kg*s)","UC_NONE" +39,"CPOFP","Percent frozen precipitation","%","UC_NONE" +40,"PEVAP","Potential evaporation","kg/m^2","UC_NONE" +41,"PEVPR","Potential evaporation rate","W/m^2","UC_NONE" +42,"SNOWC","Snow cover","%","UC_NONE" +43,"FRAIN","Rain fraction of total cloud water","-","UC_NONE" +44,"RIME","Rime factor","-","UC_NONE" +45,"TCOLR","Total column integrated rain","kg/m^2","UC_NONE" +46,"TCOLS","Total column integrated snow","kg/m^2","UC_NONE" +47,"LSWP","Large scale water precipitation","kg/m^2","UC_NONE" +48,"CWP","Convective water precipitation","kg/m^2","UC_NONE" +49,"TWATP","Total water precipitation","kg/m^2","UC_NONE" +50,"TSNOWP","Total snow precipitation","kg/m^2","UC_NONE" +51,"TCWAT","Total column water","kg/m^2","UC_NONE" +52,"TPRATE","Total precipitation rate","kg/(m^2*s)","UC_NONE" +53,"TSRWE","Total snowfall rate water equivalent","kg/(m^2*s)","UC_NONE" +54,"LSPRATE","Large scale precipitation rate","kg/(m^2*s)","UC_NONE" +55,"CSRWE","Convective snowfall rate water equivalent","kg/(m^2*s)","UC_NONE" +56,"LSSRWE","Large scale snowfall rate water equivalent","kg/(m^2*s)","UC_NONE" +57,"TSRATE","Total snowfall rate","m/s","UC_NONE" +58,"CSRATE","Convective snowfall rate","m/s","UC_NONE" +59,"LSSRWE","Large scale snowfall rate","m/s","UC_NONE" +60,"SDWE","Snow depth water equivalent","kg/m^2","UC_NONE" +61,"SDEN","Snow density","kg/m^3","UC_NONE" +62,"SEVAP","Snow evaporation","kg/m^2","UC_NONE" +63,"","Reserved","-","UC_NONE" +64,"TCIWV","Total column integrated water vapour","kg/m^2","UC_NONE" +65,"RPRATE","Rain precipitation rate","kg/(m^2*s)","UC_NONE" +66,"SPRATE","Snow precipitation rate","kg/(m^2*s)","UC_NONE" +67,"FPRATE","Freezing rain precipitation rate","kg/(m^2*s)","UC_NONE" +68,"IPRATE","Ice pellets precipitation rate","kg/(m^2*s)","UC_NONE" +69,"TCOLW","Total Column Integrate Cloud Water","kg/m^2","UC_NONE" +70,"TCOLI","Total Column Integrate Cloud Ice","kg/m^2","UC_NONE" +71,"HAILMXR","Hail Mixing Ratio","kg/kg","UC_NONE" +72,"TCOLH","Total Column Integrate Hail","kg/m^2","UC_NONE" +73,"HAILPR","Hail Prepitation Rate","kg/(m^2*s)","UC_NONE" +74,"TCOLG","Total Column Integrate Graupel","kg/m^2","UC_NONE" +75,"GPRATE","Graupel (Snow Pellets) Prepitation Rate","kg/(m^2*s)","UC_NONE" +76,"CRRATE","Convective Rain Rate","kg/(m^2*s)","UC_NONE" +77,"LSRRATE","Large Scale Rain Rate","kg/(m^2*s)","UC_NONE" +78,"TCOLWA","Total Column Integrate Water (All components including precipitation)","kg/m^2","UC_NONE" +79,"EVARATE","Evaporation Rate","kg/(m^2*s)","UC_NONE" +80,"TOTCON","Total Condensate","kg/kg","UC_NONE" +81,"TCICON","Total Column-Integrate Condensate","kg/m^2","UC_NONE" +82,"CIMIXR","Cloud Ice Mixing Ratio","kg/kg","UC_NONE" +83,"SCLLWC","Specific Cloud Liquid Water Content","kg/kg","UC_NONE" +84,"SCLIWC","Specific Cloud Ice Water Content","kg/kg","UC_NONE" +85,"SRAINW","Specific Rain Water Content","kg/kg","UC_NONE" +86,"SSNOWW","Specific Snow Water Content","kg/kg","UC_NONE" +87,"SPRATE","Stratiform Precipitation Rate","kg/(m^2*s)","UC_NONE" +88,"CATCP","Categorical Convective Precipitation","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +89,"","Reserved","-","UC_NONE" +90,"TKMFLX","Total Kinematic Moisture Flux","kg/kg(m/s)","UC_NONE" +91,"UKMFLX","U-component (zonal) Kinematic Moisture Flux","kg/kg(m/s)","UC_NONE" +92,"VKMFLX","V-component (meridional) Kinematic Moisture Flux","kg/kg(m/s)","UC_NONE" +93,"RHWATER","Relative Humidity With Respect to Water","%","UC_NONE" +94,"RHICE","Relative Humidity With Respect to Ice","%","UC_NONE" +95,"FZPRATE","Freezing or Frozen Precipitation Rate","kg/(m^2*s)","UC_NONE" +96,"MASSDR","Mass Density of Rain","kg/m^3","UC_NONE" +97,"MASSDS","Mass Density of Snow","kg/m^3","UC_NONE" +98,"MASSDG","Mass Density of Graupel","kg/m^3","UC_NONE" +99,"MASSDH","Mass Density of Hail","kg/m^3","UC_NONE" +100,"SPNCR","Specific Number Concentration of Rain","kg^-1","UC_NONE" +101,"SPNCS","Specific Number Concentration of Snow","kg^-1","UC_NONE" +102,"SPNCG","Specific Number Concentration of Graupel","kg^-1","UC_NONE" +103,"SPNCH","Specific Number Concentration of Hail","kg^-1","UC_NONE" +104,"NUMDR","Number Density of Rain","m^-3","UC_NONE" +105,"NUMDS","Number Density of Snow","m^-3","UC_NONE" +106,"NUMDG","Number Density of Graupel","m^-3","UC_NONE" +107,"NUMDH","Number Density of Hail","m^-3","UC_NONE" +108,"SHTPRM","Specific Humidity Tendency due to Parameterizations","kg/kg(s)","UC_NONE" +109,"MDLWHVA","Mass Density of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Volume of Air","kg/m^3","UC_NONE" +110,"SMLWHMA","Specific Mass of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Moist Air","kg/kg","UC_NONE" +111,"MMLWHDA","Mass Mixing Ratio of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Dry Air","kg/kg","UC_NONE" +112,"MDLWGVA","Mass Density of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Volume of Air","kg/m^3","UC_NONE" +113,"SMLWGMA","Specific Mass of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Moist Air","kg/kg","UC_NONE" +114,"MMLWGDA","Mass Mixing Ratio of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Dry Air","kg/kg","UC_NONE" +115,"MDLWSVA","Mass Density of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Volume of Air","kg/m^3","UC_NONE" +116,"SMLWSMA","Specific Mass of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Moist Air","kg/kg","UC_NONE" +117,"MMLWSDA","Mass Mixing Ratio of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Dry Air","kg/kg","UC_NONE" +118,"UNCSH","Unbalanced Component of Specific Humidity","kg/kg","UC_NONE" +119,"UCSCLW","Unbalanced Component of Specific Cloud Liquid Water content","kg/kg","UC_NONE" +120,"UCSCIW","Unbalanced Component of Specific Cloud Ice Water content","kg/kg","UC_NONE" +121,"FSNOWC","Fraction of Snow Cover","Proportion","UC_NONE" +122,"","Precipitation intensity index","0=No precipitation occurrence; 1=Light precipitation; 2=Moderate precipitation; 3=Heavy precipitation; 4-254=Reserved; 255=Missing","UC_NONE" +123,"","Dominant precipitation type","0=No precipitation; 1=Rain; 2=Thunderstorm; 3=Freezing rain; 4=Mixed/ice; 5=Snow; 6=Wet snow; 7=Mixture of rain and snow; 8=Ice pellets; 9=Graupel; 10=Hail; 11=Drizzle; 12=Freezing drizzle; 13-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +124,"","Presence of showers","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +125,"","Presence of blowing snow","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +126,"","Presence of blizzard","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +127,"","Ice pellets (non-water equivalent) precipitation rate","m/s","UC_NONE" +128,"","Total solid precipitation rate","kg m-2 s-1","UC_NONE" +129,"","Effective radius of cloud water","m","UC_NONE" +130,"","Effective radius of rain","m","UC_NONE" +131,"","Effective radius of cloud ice","m","UC_NONE" +132,"","Effective radius of snow","m","UC_NONE" +133,"","Effective radius of graupel","m","UC_NONE" +134,"","Effective radius of hail","m","UC_NONE" +135,"","Effective radius of subgrid liquid clouds","m","UC_NONE" +136,"","Effective radius of subgrid ice clouds","m","UC_NONE" +137,"","Effective aspect ratio of rain","-","UC_NONE" +138,"","Effective aspect ratio of cloud ice","-","UC_NONE" +139,"","Effective aspect ratio of snow","-","UC_NONE" +140,"","Effective aspect ratio of graupel","-","UC_NONE" +141,"","Effective aspect ratio of hail","-","UC_NONE" +142,"","Effective aspect ratio of subgrid ice clouds","-","UC_NONE" +143,"","Potential evaporation rate","kg m-2 s-1","UC_NONE" +144,"","Specific rain water content (convective)","kg kg-1","UC_NONE" +145,"","Specific snow water content (convective)","kg kg-1","UC_NONE" +146,"","Cloud ice precipitation rate","kg m-2 s-1","UC_NONE" +147,"","Character of precipitation","0=None; 1=Showers; 2=Intermittent; 3=Continuous; 4-254=Reserved; 255=Missing","UC_NONE" +148,"","Snow evaporation rate","kg m-2 s-1","UC_NONE" +149,"","Cloud water mixing ratio","kg kg-1","UC_NONE" +150,"","Column integrated eastward water vapour mass flux","kg m-1 s-1","UC_NONE" +151,"","Column integrated northward water vapour mass flux","kg m-1 s-1","UC_NONE" +152,"","Column integrated eastward cloud liquid water mass flux","kg m-1 s-1","UC_NONE" +153,"","Column integrated northward cloud liquid water mass flux","kg m-1 s-1","UC_NONE" +154,"","Column integrated eastward cloud ice mass flux","kg m-1 s-1","UC_NONE" +155,"","Column integrated northward cloud ice mass flux","kg m-1 s-1","UC_NONE" +156,"","Column integrated eastward rain mass flux","kg m-1 s-1","UC_NONE" +157,"","Column integrated northward rain mass flux","kg m-1 s-1","UC_NONE" +158,"","Column integrated eastward snow mass flux","kg m-1 s-1","UC_NONE" +159,"","Column integrated northward snow mass flux","kg m-1 s-1","UC_NONE" +160,"","Column integrated divergence of water vapour mass flux","kg m-2 s-1","UC_NONE" +161,"","Column integrated divergence of cloud liquid water mass flux","kg m-2 s-1","UC_NONE" +162,"","Column integrated divergence of cloud ice mass flux","kg m-2 s-1","UC_NONE" +163,"","Column integrated divergence of rain mass flux","kg m-2 s-1","UC_NONE" +164,"","Column integrated divergence of snow mass flux","kg m-2 s-1","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv new file mode 100644 index 00000000..15e88357 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"AEROT","Aerosol type","0=Aerosol not present; 1=Aerosol present; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +1,"","Reserved","","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv new file mode 100644 index 00000000..22fbc219 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TOZNE","Total ozone","Dobson","UC_NONE" +1,"O3MR","Ozone mixing ratio","kg/kg","UC_NONE" +2,"TCIOZ","Total column integrated ozone","Dobson","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv new file mode 100644 index 00000000..8a99899d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"BSWID","Base spectrum width","m/s","UC_NONE" +1,"BREF","Base reflectivity","dB","UC_NONE" +2,"BRVEL","Base radial velocity","m/s","UC_NONE" +3,"VERIL","Vertically-integrated liquid","kg/m","UC_NONE" +4,"LMAXBR","Layer maximum base reflectivity","dB","UC_NONE" +5,"PREC","Precipitation","kg/(m^2)","UC_NONE" +6,"RDSP1","Radar spectra (1)","-","UC_NONE" +7,"RDSP2","Radar spectra (2)","-","UC_NONE" +8,"RDSP3","Radar spectra (3)","-","UC_NONE" +9,"RFCD","Reflectivity of Cloud Droplets","dB","UC_NONE" +10,"RFCI","Reflectivity of Cloud Ice","dB","UC_NONE" +11,"RFSNOW","Reflectivity of Snow","dB","UC_NONE" +12,"RFRAIN","Reflectivity of Rain","dB","UC_NONE" +13,"RFGRPL","Reflectivity of Graupel","dB","UC_NONE" +14,"RFHAIL","Reflectivity of Hail","dB","UC_NONE" +15,"HSR","Hybrid Scan Reflectivity","dB","UC_NONE" +16,"HSRHT","Hybrid Scan Reflectivity Height","m","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv new file mode 100644 index 00000000..661bb886 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"REFZR","Equivalent radar reflectivity for rain","mm^6/m^3","UC_NONE" +1,"REFZI","Equivalent radar reflectivity for snow","mm^6/m^3","UC_NONE" +2,"REFZC","Equivalent radar reflectivity for parameterized convection","mm^6/m^3","UC_NONE" +3,"RETOP","Echo Top","m","UC_NONE" +4,"REFD","Reflectivity","dB","UC_NONE" +5,"REFC","Composity reflectivity","dB","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv new file mode 100644 index 00000000..2ceceea9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv @@ -0,0 +1,11 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"LTNGSD","Lightning Strike Density","m^2/s","UC_NONE" +1,"LTPINX","Lightning Potential Index (LPI) (see Note)","J/kg","UC_NONE" +2,"","Cloud-to-ground lightning flash density","km-2 day-1","UC_NONE" +3,"","Cloud-to-cloud lightning flash density","km-2 day-1","UC_NONE" +4,"","Total lightning flash density","km-2 day-1","UC_NONE" +5,"","Subgrid-scale lightning potential index","J kg-1","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv new file mode 100644 index 00000000..d316947a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"ACCES","Air concentration of Caesium 137","Bq/(m^3)","UC_NONE" +1,"ACIOD","Air concentration of Iodine 131","Bq/(m^3)","UC_NONE" +2,"ACRADP","Air concentration of radioactive pollutant","Bq/(m^3)","UC_NONE" +3,"GDCES","Ground deposition of Caesium 137","Bq/(m^2)","UC_NONE" +4,"GDIOD","Ground deposition of Iodine 131","Bq/(m^2)","UC_NONE" +5,"GDRADP","Ground deposition of radioactive pollutant","Bq/(m^2)","UC_NONE" +6,"TIACCP","Time-integrated air concentration of caesium pollutant","(Bq s)/(m^3)","UC_NONE" +7,"TIACIP","Time-integrated air concentration of iodine pollutant","(Bq s)/(m^3)","UC_NONE" +8,"TIACRP","Time-integrated air concentration of radioactive pollutant","(Bq s)/(m^3)","UC_NONE" +9,"","Reserved","-","UC_NONE" +10,"AIRCON","Air Concentration","Bq/(m^3)","UC_NONE" +11,"WETDEP","Wet Deposition","Bq/(m^2)","UC_NONE" +12,"DRYDEP","Dry Deposition","Bq/(m^2)","UC_NONE" +13,"TOTLWD","Total Deposition (Wet + Dry)","Bq/(m^2)","UC_NONE" +14,"SACON","Specific Activity Concentration","Bq/kg","UC_NONE" +15,"MAXACON","Maximum of Air Concentration in Layer","Bq/(m^3)","UC_NONE" +16,"HMXACON","Height of Maximum of Air Concentration","m","UC_NONE" +17,"CIAIRC","Column-Integrated Air Concentration","Bq/(m^2)","UC_NONE" +18,"CAACL","Column-Averaged Air Concentration in Layer","Bq/(m^3)","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv new file mode 100644 index 00000000..e155585d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"VIS","Visibility","m","UC_M2StatuteMile" +1,"ALBDO","Albedo","%","UC_NONE" +2,"TSTM","Thunderstorm probability","%","UC_NONE" +3,"MIXHT","Mixed layer depth","m","UC_NONE" +4,"VOLASH","Volcanic ash","0=Not present; 1=Present; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +5,"ICIT","Icing top","m","UC_NONE" +6,"ICIB","Icing base","m","UC_NONE" +7,"ICI","Icing","0=None; 1=Light; 2=Moderate; 3=Severe; 4=Trace; 5=Heavy; 6-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +8,"TURBT","Turbulance top","m","UC_NONE" +9,"TURBB","Turbulence base","m","UC_NONE" +10,"TURB","Turbulance","0=None (smooth); 1=Light; 2=Moderate; 3=Severe; 4=Extreme; 5-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +11,"TKE","Turbulent kinetic energy","J/kg","UC_NONE" +12,"PBLREG","Planetary boundary layer regime","0=Reserved; 1=Stable; 2=Mechanically driven turbulence; 3=Forced convection; 4=Free convection; 5-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +13,"CONTI","Contrail intensity","0=Contrail not present; 1=Contrail present; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +14,"CONTET","Contrail engine type","0=Low bypass; 1=High bypass; 2=Non-bypass; 3-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +15,"CONTT","Contrail top","m","UC_NONE" +16,"CONTB","Contrail base","m","UC_NONE" +17,"MXSALB","Maximum snow albedo","%","UC_NONE" +18,"SNFALB","Snow free albedo","%","UC_NONE" +19,"SALBD","Snow albedo","%","UC_NONE" +20,"ICIP","Icing","%","UC_NONE" +21,"CTP","In-Cloud Turbulence","%","UC_NONE" +22,"CAT","Clear Air Turbulence","%","UC_NONE" +23,"SLDP","Supercooled Large Droplet Probability","%","UC_NONE" +24,"CONTKE","Convective Turbulent Kinetic Energy","J/kg","UC_NONE" +25,"WIWW","Weather Interpretation ww (WMO)","=(see FM 94 BUFR/FM 95 CREX Code table 0 20 003 - Present weather)","UC_NONE" +26,"CONVO","Convective Outlook","0=No risk area; 1=Reserved; 2=General thunderstorm risk area; 3=Reserved; 4=Slight risk area; 5=Reserved; 6=Moderate risk area; 7=Reserved; 8=High risk area; 9-10=Reserved; 11=Dry thunderstorm (dry lightning) risk area; 12-13=Reserved; 14=Critical risk area; 15-17=Reserved; 18=Extremely critical risk area; 19-254=Reserved; 255=Missing","UC_NONE" +27,"ICESC","Icing Scenario","0=None; 1=General; 2=Convective; 3=Stratiform; 4=Freezing; 5-191=Reserved; 192-254=Reserved for local use; 255=Missing value","UC_NONE" +28,"MWTURB","Mountain Wave Turbulence (Eddy Dissipation Rate)","m^(2/3)/s","UC_NONE" +29,"CATEDR","Clear Air Turbulence (CAT) (Eddy Dissipation Rate)","m^(2/3)/s","UC_NONE" +30,"EDPARM","Eddy Dissipation Parameter","m^(2/3)/s","UC_NONE" +31,"MXEDPRM","Maximum of Eddy Dissipation Parameter in Layer","m^(2/3)/s","UC_NONE" +32,"HIFREL","Highest Freezing Level","m","UC_NONE" +33,"VISLFOG","Visibility Through Liquid Fog","m","UC_NONE" +34,"VISIFOG","Visibility Through Ice Fog","m","UC_NONE" +35,"VISBSN","Visibility Through Blowing Snow","m","UC_NONE" +36,"","Presence of snow squalls","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +37,"","Icing severity","0=None; 1=Trace; 2=Light; 3=Moderate; 4=Severe; 5-254=Reserved; 255=Missing value","UC_NONE" +38,"","Sky transparency index","0=Worst; 1=Very poor; 2=Poor; 3=Average; 4=Good; 5=Excellent; 6-190=Reserved; 191=Unknown; 192-254=Reserved for local use; 255=Missing","UC_NONE" +39,"","Seeing index","0=Worst; 1=Very poor; 2=Poor; 3=Average; 4=Good; 5=Excellent; 6-190=Reserved; 191=Unknown; 192-254=Reserved for local use; 255=Missing","UC_NONE" +40,"","Snow level","m","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv new file mode 100644 index 00000000..807b1e39 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Arbitrary text string","CCITTIA5","UC_NONE" +1,"","Reserved","","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv new file mode 100644 index 00000000..3a3cf17f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TSEC","Seconds prior to initial reference time (defined in Section 1)","s","UC_NONE" +1,"GEOLAT","Geographical Latitude","deg N","UC_NONE" +2,"GEOLON","Geographical Longitude","deg E","UC_NONE" +3,"DSLOBS","Days Since Last Observation","d","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv new file mode 100644 index 00000000..1aad6efe --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"WDIR","Wind direction (from which blowing)","deg true","UC_NONE" +1,"WIND","Wind speed","m/s","UC_MS2Knots" +2,"UGRD","u-component of wind","m/s","UC_NONE" +3,"VGRD","v-component of wind","m/s","UC_NONE" +4,"STRM","Stream function","(m^2)/s","UC_NONE" +5,"VPOT","Velocity potential","(m^2)/s","UC_NONE" +6,"MNTSF","Montgomery stream function","(m^2)/(s^2)","UC_NONE" +7,"SGCVV","Sigma coordinate vertical velocity","1/s","UC_NONE" +8,"VVEL","Vertical velocity (pressure)","Pa/s","UC_NONE" +9,"DZDT","Vertical velocity (geometric)","m/s","UC_NONE" +10,"ABSV","Absolute vorticity","1/s","UC_NONE" +11,"ABSD","Absolute divergence","1/s","UC_NONE" +12,"RELV","Relative vorticity","1/s","UC_NONE" +13,"RELD","Relative divergence","1/s","UC_NONE" +14,"PVORT","Potential vorticity","K(m^2)/(kg s)","UC_NONE" +15,"VUCSH","Vertical u-component shear","1/s","UC_NONE" +16,"VVCSH","Vertical v-component shear","1/s","UC_NONE" +17,"UFLX","Momentum flux; u component","N/(m^2)","UC_NONE" +18,"VFLX","Momentum flux; v component","N/(m^2)","UC_NONE" +19,"WMIXE","Wind mixing energy","J","UC_NONE" +20,"BLYDP","Boundary layer dissipation","W/(m^2)","UC_NONE" +21,"MAXGUST","Maximum wind speed","m/s","UC_NONE" +22,"GUST","Wind speed (gust)","m/s","UC_MS2Knots" +23,"UGUST","u-component of wind (gust)","m/s","UC_NONE" +24,"VGUST","v-component of wind (gust)","m/s","UC_NONE" +25,"VWSH","Vertical speed shear","1/s","UC_NONE" +26,"MFLX","Horizontal momentum flux","N/(m^2)","UC_NONE" +27,"USTM","U-component storm motion","m/s","UC_NONE" +28,"VSTM","V-component storm motion","m/s","UC_NONE" +29,"CD","Drag coefficient","-","UC_NONE" +30,"FRICV","Frictional velocity","m/s","UC_NONE" +31,"TDCMOM","Turbulent Diffusion Coefficient for Momentum","(m^2)/s","UC_NONE" +32,"ETACVV","Eta Coordinate Vertical Velocity","1/s","UC_NONE" +33,"WINDF","Wind Fetch","m","UC_NONE" +34,"NWIND","Normal Wind Component","m/s","UC_NONE" +35,"TWIND","Tangential Wind Component","m/s","UC_NONE" +36,"AFRWE","Amplitude Function for Rossby Wave Envelope for Meridional Wind","m/s","UC_NONE" +37,"NTSS","Northward Turbulent Surface Stress","1/(m^2)","UC_NONE" +38,"ETSS","Eastward Turbulent Surface Stress","1/(m^2)","UC_NONE" +39,"EWTPARM","Eastward Wind Tendency Due to Parameterizations","m/(s^2)","UC_NONE" +40,"NWTPARM","Northward Wind Tendency Due to Parameterizations","m/(s^2)","UC_NONE" +41,"UGWIND","U-Component of Geostrophic Wind","m/s","UC_NONE" +42,"VGWIND","V-Component of Geostrophic Wind","m/s","UC_NONE" +43,"GEOWD","Geostrophic Wind Direction","deg true","UC_NONE" +44,"GEOWS","Geostrophic Wind Speed","m/s","UC_NONE" +45,"UNDIV","Unbalanced Component of Divergence","1/s","UC_NONE" +46,"VORTADV","Vorticity Advection","1/(s^2)","UC_NONE" +47,"","Surface roughness for heat","m","UC_NONE" +48,"","Surface roughness for moisture","m","UC_NONE" +49,"","Wind stress","N m-2","UC_NONE" +50,"","Eastward wind stress","N m-2","UC_NONE" +51,"","Northward wind stress","N m-2","UC_NONE" +52,"","u-component of wind stress","N m-2","UC_NONE" +53,"","v-component of wind stress","N m-2","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv new file mode 100644 index 00000000..65c7d428 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"MASSDEN","Mass Density (Concentration)","kg/(m^3)","UC_NONE" +1,"COLMD","Column-Integrated Mass Density","kg/(m^2)","UC_NONE" +2,"MASSMR","Mass Mixing Ratio (Mass Fraction in Air)","kg/kg","UC_NONE" +3,"AEMFLX","Atmosphere Emission Mass Flux","kg/(m^2*s)","UC_NONE" +4,"ANPMFLX","Atmosphere Net Production Mass Flux","kg/(m^2*s)","UC_NONE" +5,"ANPEMFLX","Atmosphere Net Production and Emission Mass Flux","kg/(m^2*s)","UC_NONE" +6,"SDDMFLX","Surface Dry Deposition Mass Flux","kg/(m^2*s)","UC_NONE" +7,"SWDMFLX","Surface Wet Deposition Mass Flux","kg/(m^2*s)","UC_NONE" +8,"AREMFLX","Atmosphere Re-Emission Mass Flux","kg/(m^2*s)","UC_NONE" +9,"WLSMFLX","Wet Deposition by Large-Scale Precipitation Mass Flux","kg/(m^2*s)","UC_NONE" +10,"WDCPMFLX","Wet Deposition by Convective Precipitation Mass Flux","kg/(m^2*s)","UC_NONE" +11,"SEDMFLX","Sedimentation Mass Flux","kg/(m^2*s)","UC_NONE" +12,"DDMFLX","Dry Deposition Mass Flux","kg/(m^2*s)","UC_NONE" +13,"TRANHH","Transfer From Hydrophobic to Hydrophilic","kg(kg*s)","UC_NONE" +14,"TRSDS","Transfer From SO2 (Sulphur Dioxide) to SO4 (Sulphate)","kg(kg*s)","UC_NONE" +15,"DDVEL","Dry deposition velocity","m/s","UC_NONE" +16,"MSSRDRYA","Mass mixing ratio with respect to dry air","kg/kg","UC_NONE" +17,"MSSRWETA","Mass mixing ratio with respect to wet air","kg/kg","UC_NONE" +18,"","Potential of hydrogen (pH)","pH","UC_NONE" +19,"","Reserved","-","UC_NONE" +20,"","Reserved","-","UC_NONE" +21,"","Reserved","-","UC_NONE" +22,"","Reserved","-","UC_NONE" +23,"","Reserved","-","UC_NONE" +24,"","Reserved","-","UC_NONE" +25,"","Reserved","-","UC_NONE" +26,"","Reserved","-","UC_NONE" +27,"","Reserved","-","UC_NONE" +28,"","Reserved","-","UC_NONE" +29,"","Reserved","-","UC_NONE" +30,"","Reserved","-","UC_NONE" +31,"","Reserved","-","UC_NONE" +32,"","Reserved","-","UC_NONE" +33,"","Reserved","-","UC_NONE" +34,"","Reserved","-","UC_NONE" +35,"","Reserved","-","UC_NONE" +36,"","Reserved","-","UC_NONE" +37,"","Reserved","-","UC_NONE" +38,"","Reserved","-","UC_NONE" +39,"","Reserved","-","UC_NONE" +40,"","Reserved","-","UC_NONE" +41,"","Reserved","-","UC_NONE" +42,"","Reserved","-","UC_NONE" +43,"","Reserved","-","UC_NONE" +44,"","Reserved","-","UC_NONE" +45,"","Reserved","-","UC_NONE" +46,"","Reserved","-","UC_NONE" +47,"","Reserved","-","UC_NONE" +48,"","Reserved","-","UC_NONE" +49,"","Reserved","-","UC_NONE" +50,"AIA","Amount in Atmosphere","mol","UC_NONE" +51,"CONAIR","Concentration in Air","mol/(m^3)","UC_NONE" +52,"VMXR","Volume Mixing Ratio (Fraction in Air)","mol/mol","UC_NONE" +53,"CGPRC","Chemical Gross Production Rate of Concentration","mol/(m^3*s)","UC_NONE" +54,"CGDRC","Chemical Gross Destruction Rate of Concentration","mol/(m^3*s)","UC_NONE" +55,"SFLUX","Surface Flux","mol/(m^2*s)","UC_NONE" +56,"COAIA","Changes of Amount in Atmosphere","mol/s","UC_NONE" +57,"TYABA","Total Yearly Average Burden of the Atmosphere","mol","UC_NONE" +58,"TYAAL","Total Yearly Average Atmospheric Loss","mol/s","UC_NONE" +59,"ANCON","Aerosol Number Concentration","1/(m^3)","UC_NONE" +60,"ASNCON","Aerosol Specific Number Concentration","1/kg","UC_NONE" +61,"MXMASSD","Maximum of Mass Density","kg(/m^3)","UC_NONE" +62,"HGTMD","Height of Mass Density","m","UC_NONE" +63,"CAVEMDL","Column-Averaged Mass Density in Layer","kg/(m^3)","UC_NONE" +64,"MOLRDRYA","Mole fraction with respect to dry air","mol/mol","UC_NONE" +65,"MOLRWETA","Mole fraction with respect to dry air","mol/mol","UC_NONE" +66,"CINCLDSP","Column-integrated in-cloud scavenging rate by precipitation","kg/(m^2 s)","UC_NONE" +67,"CBLCLDSP","Column-integrated below-cloud scavenging rate by precipitation","kg/(m^2 s)","UC_NONE" +68,"CIRELREP","Column-integrated release rate from evaporating precipitation","kg/(m^2 s)","UC_NONE" +69,"CINCSLSP","Column-integrated in-cloud scavenging rate by large-scale precipitation","kg/(m^2 s)","UC_NONE" +70,"CBECSLSP","Column-integrated below-cloud scavenging rate by large-scale precipitation","kg/(m^2 s)","UC_NONE" +71,"CRERELSP","Column-integrated release rate from evaporating large-scale precipitation","kg/(m^2 s)-","UC_NONE" +72,"CINCSRCP","Column-integrated in-cloud scavenging rate by convective precipitation","kg/(m^2 s)","UC_NONE" +73,"CBLCSRCP","Column-integrated below-cloud scavenging rate by convective precipitation","kg/(m^2 s)","UC_NONE" +74,"CIRERECP","Column-integrated release rate from evaporating convective precipitation","kg/(m^2 s)","UC_NONE" +75,"WFIREFLX","Wildfire flux","kg/(m^2 s)","UC_NONE" +76,"","Emission rate","kg kg-1 s-1","UC_NONE" +77,"","Surface emission flux","kg m-2 s-1","UC_NONE" +78,"","Column integrated eastward mass flux","kg m-1 s-1","UC_NONE" +79,"","Column integrated northward mass flux","kg m-1 s-1","UC_NONE" +80,"","Column integrated divergence of mass flux","kg m-2 s-1","UC_NONE" +81,"","Column integrated net source","kg m-2 s-1","UC_NONE" +82,"","Reserved","-","UC_NONE" +83,"","Reserved","-","UC_NONE" +84,"","Reserved","-","UC_NONE" +85,"","Reserved","-","UC_NONE" +86,"","Reserved","-","UC_NONE" +87,"","Reserved","-","UC_NONE" +88,"","Reserved","-","UC_NONE" +89,"","Reserved","-","UC_NONE" +90,"","Reserved","-","UC_NONE" +91,"","Reserved","-","UC_NONE" +92,"","Reserved","-","UC_NONE" +93,"","Reserved","-","UC_NONE" +94,"","Reserved","-","UC_NONE" +95,"","Reserved","-","UC_NONE" +96,"","Reserved","-","UC_NONE" +97,"","Reserved","-","UC_NONE" +98,"","Reserved","-","UC_NONE" +99,"","Reserved","-","UC_NONE" +100,"SADEN","Surface Area Density (Aerosol)","1/m","UC_NONE" +101,"ATMTK","Vertical Visual Range","m","UC_NONE" +102,"AOTK","Atmosphere Optical Thickness","Numeric","UC_NONE" +103,"SSALBK","Single Scattering Albedo","Numeric","UC_NONE" +104,"ASYSFK","Asymmetry Factor","Numeric","UC_NONE" +105,"AECOEF","Aerosol Extinction Coefficient","1/m","UC_NONE" +106,"AACOEF","Aerosol Absorption Coefficient","1/m","UC_NONE" +107,"ALBSAT","Aerosol Lidar Backscatter from Satellite","1/(m*sr)","UC_NONE" +108,"ALBGRD","Aerosol Lidar Backscatter from the Ground","1/(m*sr)","UC_NONE" +109,"ALESAT","Aerosol Lidar Extinction from Satellite","1/m","UC_NONE" +110,"ALEGRD","Aerosol Lidar Extinction from the Ground","1/m","UC_NONE" +111,"ANGSTEXP","Angstrom Exponent","Numeric","UC_NONE" +112,"SCTAOTK","Scattering Aerosol Optical Thickness","Numeric","UC_NONE" +113,"","Reserved","-","UC_NONE" +114,"","Reserved","-","UC_NONE" +115,"","Reserved","-","UC_NONE" +116,"","Reserved","-","UC_NONE" +117,"","Reserved","-","UC_NONE" +118,"","Reserved","-","UC_NONE" +119,"","Reserved","-","UC_NONE" +120,"","Reserved","-","UC_NONE" +121,"","Reserved","-","UC_NONE" +122,"","Reserved","-","UC_NONE" +123,"","Reserved","-","UC_NONE" +124,"","Reserved","-","UC_NONE" +125,"","Reserved","-","UC_NONE" +126,"","Reserved","-","UC_NONE" +127,"","Reserved","-","UC_NONE" +128,"","Reserved","-","UC_NONE" +129,"","Reserved","-","UC_NONE" +130,"","Reserved","-","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv new file mode 100644 index 00000000..02d627f1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Column integrated potential + internal energy","J m-2","UC_NONE" +1,"","Column integrated kinetic energy","J m-2","UC_NONE" +2,"","Column integrated total energy","J m-2","UC_NONE" +3,"","Column integrated enthalpy","J m-2","UC_NONE" +4,"","Column integrated water enthalpy","J m-2","UC_NONE" +5,"","Column integrated eastward enthalpy flux","W m-1","UC_NONE" +6,"","Column integrated northward enthalpy flux","W m-1","UC_NONE" +7,"","Column integrated eastward potential energy flux","W m-1","UC_NONE" +8,"","Column integrated northward potential energy flux","W m-1","UC_NONE" +9,"","Column integrated eastward kinetic energy flux","W m-1","UC_NONE" +10,"","Column integrated northward kinetic energy flux","W m-1","UC_NONE" +11,"","Column integrated eastward total energy flux","W m-1","UC_NONE" +12,"","Column integrated northward total energy flux","W m-1","UC_NONE" +13,"","Divergence of column integrated enthalpy flux","W m-2","UC_NONE" +14,"","Divergence of column integrated potential energy flux","W m-2","UC_NONE" +15,"","Divergence of column integrated water potential energy flux","W m-2","UC_NONE" +16,"","Divergence of column integrated kinetic energy flux","W m-2","UC_NONE" +17,"","Divergence of column integrated total energy flux","W m-2","UC_NONE" +18,"","Divergence of column integrated water enthalpy flux","W m-2","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv new file mode 100644 index 00000000..4cd4def6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"PRES","Pressure","Pa","UC_NONE" +1,"PRMSL","Pressure reduced to MSL","Pa","UC_NONE" +2,"PTEND","Pressure tendency","Pa/s","UC_NONE" +3,"ICAHT","ICAO Standard Atmosphere Reference Height","m","UC_NONE" +4,"GP","Geopotential","(m^2)/(s^2)","UC_NONE" +5,"HGT","Geopotential height","gpm","UC_NONE" +6,"DIST","Geometric height","m","UC_M2Feet" +7,"HSTDV","Standard deviation of height","m","UC_NONE" +8,"PRESA","Pressure anomaly","Pa","UC_NONE" +9,"GPA","Geopotential height anomaly","gpm","UC_NONE" +10,"DEN","Density","kg/(m^3)","UC_NONE" +11,"ALTS","Altimeter setting","Pa","UC_NONE" +12,"THICK","Thickness","m","UC_NONE" +13,"PRESALT","Pressure altitude","m","UC_NONE" +14,"DENALT","Density altitude","m","UC_NONE" +15,"5WAVH","5-wave geopotential height","gpm","UC_NONE" +16,"U-GWD","Zonal flux of gravity wave stress","N/(m^2)","UC_NONE" +17,"V-GWD","Meridional flux of gravity wave stress","N/(m^2)","UC_NONE" +18,"HPBL","Planetary boundary layer height","m","UC_NONE" +19,"5WAVA","5-wave geopotential height anomaly","gpm","UC_NONE" +20,"SDSGSO","Standard deviation of sub-grid scale orography","m","UC_NONE" +21,"AOSGSO","Angle of sub-gridscale orography","rad","UC_NONE" +22,"SSGSO","Slope of sub-gridscale orography","Numeric","UC_NONE" +23,"GSGSO","Gravity wave dissipation","W/m^2","UC_NONE" +24,"ASGSO","Anisotrophy of sub-gridscale orography","Numeric","UC_NONE" +25,"NLPRES","Natural Logarithm of Pressure in Pa","Numeric","UC_NONE" +26,"EXPRES","Exner Pressure","Numeric","UC_NONE" +27,"UMFLX","Updraught Mass Flux","kg/(m^2*s)","UC_NONE" +28,"DMFLX","Downdraught Mass Flux","kg/(m^2*s)","UC_NONE" +29,"UDRATE","Updraught Detrainment Rate","kg/(m^3*s)","UC_NONE" +30,"DDRATE","Downdraught Detrainment Rate","kg/(m^3*s)","UC_NONE" +31,"UCLSPRS","Unbalanced Component of Logarithm of Surface Pressure","","UC_NONE" +32,"","Saturation water vapour pressure","Pa","UC_NONE" +33,"","Geometric altitude above mean sea level","m","UC_NONE" +34,"","Geometric height above ground level","m","UC_NONE" +35,"","Column integrated divergence of total mass flux","kg m-2 s-1","UC_NONE" +36,"","Column integrated eastward total mass flux","kg m-1 s-1","UC_NONE" +37,"","Column integrated northward total mass flux","kg m-1 s-1","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv new file mode 100644 index 00000000..065de288 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"NSWRS","Net short-wave radiation flux (surface)","W/(m^2)","UC_NONE" +1,"NSWRT","Net short-wave radiation flux (top of atmosphere)","W/(m^2)","UC_NONE" +2,"SWAVR","Short wave radiation flux","W/(m^2)","UC_NONE" +3,"GRAD","Global radiation flux","W/(m^2)","UC_NONE" +4,"BRTMP","Brightness temperature","K","UC_NONE" +5,"LWRAD","Radiance (with respect to wave number)","W/(m sr)","UC_NONE" +6,"SWRAD","Radiance (with respect to wave length)","W/(m^3 sr)","UC_NONE" +7,"DSWRF","Downward short-wave radiation flux","W/(m^2)","UC_NONE" +8,"USWRF","Upward short-wave radiation flux","W/(m^2)","UC_NONE" +9,"NSWRF","Net short wave radiation flux","W/(m^2)","UC_NONE" +10,"PHOTAR","Photosynthetically active radiation","W/(m^2)","UC_NONE" +11,"NSWRFCS","Net short-wave radiation flux; clear sky","W/(m^2)","UC_NONE" +12,"DWUVR","Downward UV radiation","W/(m^2)","UC_NONE" +13,"DSWRFLX","Direct Short Wave Radiation Flux","W/(m^2)","UC_NONE" +14,"DIFSWRF","Diffuse Short Wave Radiation Flux","W/(m^2)","UC_NONE" +15,"","Upward UV radiation emitted/reflected from the Earth's surface","W m-2","UC_NONE" +16,"","Reserved","-","UC_NONE" +17,"","Reserved","-","UC_NONE" +18,"","Reserved","-","UC_NONE" +19,"","Reserved","-","UC_NONE" +20,"","Reserved","-","UC_NONE" +21,"","Reserved","-","UC_NONE" +22,"","Reserved","-","UC_NONE" +23,"","Reserved","-","UC_NONE" +24,"","Reserved","-","UC_NONE" +25,"","Reserved","-","UC_NONE" +26,"","Reserved","-","UC_NONE" +27,"","Reserved","-","UC_NONE" +28,"","Reserved","-","UC_NONE" +29,"","Reserved","-","UC_NONE" +30,"","Reserved","-","UC_NONE" +31,"","Reserved","-","UC_NONE" +32,"","Reserved","-","UC_NONE" +33,"","Reserved","-","UC_NONE" +34,"","Reserved","-","UC_NONE" +35,"","Reserved","-","UC_NONE" +36,"","Reserved","-","UC_NONE" +37,"","Reserved","-","UC_NONE" +38,"","Reserved","-","UC_NONE" +39,"","Reserved","-","UC_NONE" +40,"","Reserved","-","UC_NONE" +41,"","Reserved","-","UC_NONE" +42,"","Reserved","-","UC_NONE" +43,"","Reserved","-","UC_NONE" +44,"","Reserved","-","UC_NONE" +45,"","Reserved","-","UC_NONE" +46,"","Reserved","-","UC_NONE" +47,"","Reserved","-","UC_NONE" +48,"","Reserved","-","UC_NONE" +49,"","Reserved","-","UC_NONE" +50,"UVIUCS","UV index (under clear sky)","Numeric","UC_NONE" +51,"UVI","UV index","W/(m^2)","UC_UVIndex" +52,"DSWRFCS","Downward Short-Wave Radiation Flux, Clear Sky","W/(m^2)","UC_NONE" +53,"USWRFCS","Upward Short-Wave Radiation Flux, Clear Sky","W/(m^2)","UC_NONE" +54,"","Direct normal short-wave radiation flux","W m-2","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv new file mode 100644 index 00000000..198829cd --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"NLWRS","Net long wave radiation flux (surface)","W/(m^2)","UC_NONE" +1,"NLWRT","Net long wave radiation flux (top of atmosphere)","W/(m^2)","UC_NONE" +2,"LWAVR","Long wave radiation flux","W/(m^2)","UC_NONE" +3,"DLWRF","Downward long-wave radiation flux","W/(m^2)","UC_NONE" +4,"ULWRF","Upward long-wave radiation flux","W/(m^2)","UC_NONE" +5,"NLWRF","Net long wave radiation flux","W/(m^2)","UC_NONE" +6,"NLWRCS","Net long-wave radiation flux; clear sky","W/(m^2)","UC_NONE" +7,"BRTEMP","Brightness Temperature","K","UC_K2F" +8,"DLWRFCS","Downward Long-Wave Radiation Flux, Clear Sky","W/(m^2)","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv new file mode 100644 index 00000000..f02c05ad --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"CICE","Cloud Ice","kg/(m^2)","UC_NONE" +1,"TCDC","Total cloud cover","%","UC_NONE" +2,"CDCON","Convective cloud cover","%","UC_NONE" +3,"LCDC","Low cloud cover","%","UC_NONE" +4,"MCDC","Medium cloud cover","%","UC_NONE" +5,"HCDC","High cloud cover","%","UC_NONE" +6,"CWAT","Cloud water","kg/(m^2)","UC_NONE" +7,"CDCA","Cloud amount","%","UC_NONE" +8,"CDCT","Cloud type","0=Clear; 1=Cumulonimbus; 2=Stratus; 3=Stratocumulus; 4=Cumulus; 5=Altostratus; 6=Nimbostratus; 7=Altocumulus; 8=Cirrostratus; 9=Cirrocumulus; 10=Cirrus; 11=Cumulonimbus - ground-based fog beneath the lowest layer; 12=Stratus - ground-based fog beneath the lowest layer; 13=Stratocumulus - ground-based fog beneath the lowest layer; 14=Cumulus - ground-based fog beneath the lowest layer; 15=Altostratus - ground-based fog beneath the lowest layer; 16=Nimbostratus - ground-based fog beneath the lowest layer; 17=Altocumulus - ground-based fog beneath the lowest layer; 18=Cirrostratus - ground-based fog beneath the lowest layer; 19=Cirrocumulus - ground-based fog beneath the lowest layer; 20=Cirrus - ground-based fog beneath the lowest layer; 21-190=Reserved; 191=Unknown; 192-254=Reserved for local use; 255=Missing","UC_NONE" +9,"TMAXT","Thunderstorm maximum tops","m","UC_NONE" +10,"THUNC","Thunderstorm coverage","0=None; 1=Isolated (1-2%); 2=Few (3-5%); 3=Scattered (6-45%); 4=Numerous (> 45%); 5-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +11,"CDCB","Cloud base","m","UC_M2Feet" +12,"CDCT","Cloud top","m","UC_M2Feet" +13,"CEIL","Ceiling","m","UC_M2Feet" +14,"CDLYR","Non-convective cloud cover","%","UC_NONE" +15,"CWORK","Cloud work function","J/kg","UC_NONE" +16,"CUEFI","Convective cloud efficiency","-","UC_NONE" +17,"TCOND","Total condensate","kg/kg","UC_NONE" +18,"TCOLW","Total column-integrated cloud water","kg/(m^2)","UC_NONE" +19,"TCOLI","Total column-integrated cloud ice","kg/(m^2)","UC_NONE" +20,"TCOLC","Total column-integrated condensate","kg/(m^2)","UC_NONE" +21,"FICE","Ice fraction of total condensate","-","UC_NONE" +22,"CDCC","Cloud cover","%","UC_NONE" +23,"CDCIMR","Cloud ice mixing ratio","kg/kg","UC_NONE" +24,"SUNS","Sunshine","Numeric","UC_NONE" +25,"CBHE","Horizontal extent of cumulonimbus (CB)","%","UC_NONE" +26,"HCONCB","Height of Convective Cloud Base","m","UC_NONE" +27,"HCONCT","Height of Convective Cloud Top","m","UC_NONE" +28,"NCONCD","Number Concentration of Cloud Droplets","1/kg","UC_NONE" +29,"NCCICE","Number Concentration of Cloud Ice","1/kg","UC_NONE" +30,"NDENCD","Number Density of Cloud Droplets","1/(m^3)","UC_NONE" +31,"NDCICE","Number Density of Cloud Ice","1/(m^3)","UC_NONE" +32,"FRACCC","Fraction of Cloud Cover","Numeric","UC_NONE" +33,"SUNSD","SunShine Duration","s","UC_NONE" +34,"SLWTC","Surface Long Wave Effective Total Cloudiness","Numeric","UC_NONE" +35,"SSWTC","Surface Short Wave Effective Total Cloudiness","Numeric","UC_NONE" +36,"FSTRPC","Fraction of Stratiform Precipitation Cover","Proportion","UC_NONE" +37,"FCONPC","Fraction of Convective Precipitation Cover","Proportion","UC_NONE" +38,"MASSDCD","Mass Density of Cloud Droplets","kg/(m^3)","UC_NONE" +39,"MASSDCI","Mass Density of Cloud Ice","kg/(m^3)","UC_NONE" +40,"MDCCWD","Mass Density of Convective Cloud Water Droplets","kg/(m^3)","UC_NONE" +41,"","Reserved","-","UC_NONE" +42,"","Reserved","-","UC_NONE" +43,"","Reserved","-","UC_NONE" +44,"","Reserved","-","UC_NONE" +45,"","Reserved","-","UC_NONE" +46,"","Reserved","-","UC_NONE" +47,"VFRCWD","Volume Fraction of Cloud Water Droplets","Numeric","UC_NONE" +48,"VFRCICE","Volume Fraction of Cloud Ice Particles","Numeric","UC_NONE" +49,"VFRCIW","Volume Fraction of Cloud (Ice and/or Water)","Numeric","UC_NONE" +50,"","Fog","%","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv new file mode 100644 index 00000000..c1793cac --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"PLI","Parcel lifted index (to 500 hPa)","K","UC_NONE" +1,"BLI","Best lifted index (to 500 hPa)","K","UC_NONE" +2,"KX","K index","K","UC_NONE" +3,"KOX","KO index","K","UC_NONE" +4,"TOTALX","Total totals index","K","UC_NONE" +5,"SX","Sweat index","numeric","UC_NONE" +6,"CAPE","Convective available potential energy","J/kg","UC_NONE" +7,"CIN","Convective inhibition","J/kg","UC_NONE" +8,"HLCY","Storm relative helicity","J/kg","UC_NONE" +9,"EHLX","Energy helicity index","numeric","UC_NONE" +10,"LFTX","Surface lifted index","K","UC_NONE" +11,"4LFTX","Best (4-layer) lifted index","K","UC_NONE" +12,"RI","Richardson number","-","UC_NONE" +13,"SHWINX","Showalter Index","K","UC_NONE" +14,"","Reserved","-","UC_NONE" +15,"UPHL","Updraft Helicity","m^2/s^2","UC_NONE" +16,"BLKRN","Bulk Richardson Number","-","UC_NONE" +17,"GRDRN","Gradient Richardson Number","-","UC_NONE" +18,"FLXRN","Flux Richardson Number","-","UC_NONE" +19,"CONAPES","Convective Available Potential Energy Shear","m^2/s^2","UC_NONE" +20,"","Thunderstorm intensity index","0=No thunderstorm occurrence; 1=Weak thunderstorm; 2=Moderate thunderstorm; 3=Severe thunderstorm; 4-254=Reserved; 255=Missing","UC_NONE" +21,"-","Reserved","-","UC_NONE" +22,"-","Reserved","-","UC_NONE" +23,"-","Reserved","-","UC_NONE" +24,"-","Reserved","-","UC_NONE" +25,"-","Reserved","-","UC_NONE" +26,"-","Reserved","-","UC_NONE" +27,"-","Reserved","-","UC_NONE" +28,"-","Reserved","-","UC_NONE" +29,"-","Reserved","-","UC_NONE" +30,"-","Reserved","-","UC_NONE" +31,"-","Reserved","-","UC_NONE" +32,"-","Reserved","-","UC_NONE" +33,"-","Reserved","-","UC_NONE" +34,"-","Reserved","-","UC_NONE" +35,"-","Reserved","-","UC_NONE" +36,"-","Reserved","-","UC_NONE" +37,"-","Reserved","-","UC_NONE" +38,"-","Reserved","-","UC_NONE" +39,"-","Reserved","-","UC_NONE" +40,"-","Reserved","-","UC_NONE" +41,"-","Reserved","-","UC_NONE" +42,"-","Reserved","-","UC_NONE" +43,"-","Reserved","-","UC_NONE" +44,"-","Reserved","-","UC_NONE" +45,"-","Reserved","-","UC_NONE" +46,"-","Reserved","-","UC_NONE" +47,"-","Reserved","-","UC_NONE" +48,"-","Reserved","-","UC_NONE" +49,"-","Reserved","-","UC_NONE" +50,"-","Reserved","-","UC_NONE" +51,"-","Reserved","-","UC_NONE" +52,"-","Reserved","-","UC_NONE" +53,"-","Reserved","-","UC_NONE" +54,"-","Reserved","-","UC_NONE" +55,"-","Reserved","-","UC_NONE" +56,"-","Reserved","-","UC_NONE" +57,"-","Reserved","-","UC_NONE" +58,"-","Reserved","-","UC_NONE" +59,"-","Reserved","-","UC_NONE" +60,"-","Reserved","-","UC_NONE" +61,"-","Reserved","-","UC_NONE" +62,"-","Reserved","-","UC_NONE" +63,"-","Reserved","-","UC_NONE" +64,"-","Reserved","-","UC_NONE" +65,"-","Reserved","-","UC_NONE" +66,"-","Reserved","-","UC_NONE" +67,"-","Reserved","-","UC_NONE" +68,"-","Reserved","-","UC_NONE" +69,"-","Reserved","-","UC_NONE" +70,"-","Reserved","-","UC_NONE" +71,"-","Reserved","-","UC_NONE" +72,"-","Reserved","-","UC_NONE" +73,"-","Reserved","-","UC_NONE" +74,"-","Reserved","-","UC_NONE" +75,"-","Reserved","-","UC_NONE" +76,"-","Reserved","-","UC_NONE" +77,"-","Reserved","-","UC_NONE" +78,"-","Reserved","-","UC_NONE" +79,"-","Reserved","-","UC_NONE" +80,"-","Reserved","-","UC_NONE" +81,"-","Reserved","-","UC_NONE" +82,"-","Reserved","-","UC_NONE" +83,"-","Reserved","-","UC_NONE" +84,"-","Reserved","-","UC_NONE" +85,"-","Reserved","-","UC_NONE" +86,"-","Reserved","-","UC_NONE" +87,"-","Reserved","-","UC_NONE" +88,"-","Reserved","-","UC_NONE" +89,"-","Reserved","-","UC_NONE" +90,"-","Reserved","-","UC_NONE" +91,"-","Reserved","-","UC_NONE" +92,"-","Reserved","-","UC_NONE" +93,"-","Reserved","-","UC_NONE" +94,"-","Reserved","-","UC_NONE" +95,"-","Reserved","-","UC_NONE" +96,"-","Reserved","-","UC_NONE" +97,"-","Reserved","-","UC_NONE" +98,"-","Reserved","-","UC_NONE" +99,"-","Reserved","-","UC_NONE" +100,"-","Reserved","-","UC_NONE" +101,"-","Reserved","-","UC_NONE" +102,"-","Reserved","-","UC_NONE" +103,"-","Reserved","-","UC_NONE" +104,"-","Reserved","-","UC_NONE" +105,"-","Reserved","-","UC_NONE" +106,"-","Reserved","-","UC_NONE" +107,"-","Reserved","-","UC_NONE" +108,"-","Reserved","-","UC_NONE" +109,"-","Reserved","-","UC_NONE" +110,"-","Reserved","-","UC_NONE" +111,"-","Reserved","-","UC_NONE" +112,"-","Reserved","-","UC_NONE" +113,"-","Reserved","-","UC_NONE" +114,"-","Reserved","-","UC_NONE" +115,"-","Reserved","-","UC_NONE" +116,"-","Reserved","-","UC_NONE" +117,"-","Reserved","-","UC_NONE" +118,"-","Reserved","-","UC_NONE" +119,"-","Reserved","-","UC_NONE" +120,"-","Reserved","-","UC_NONE" +121,"-","Reserved","-","UC_NONE" +122,"-","Reserved","-","UC_NONE" +123,"-","Reserved","-","UC_NONE" +124,"-","Reserved","-","UC_NONE" +125,"-","Reserved","-","UC_NONE" +126,"-","Reserved","-","UC_NONE" +127,"-","Reserved","-","UC_NONE" +128,"-","Reserved","-","UC_NONE" +129,"-","Reserved","-","UC_NONE" +130,"-","Reserved","-","UC_NONE" +131,"-","Reserved","-","UC_NONE" +132,"-","Reserved","-","UC_NONE" +133,"-","Reserved","-","UC_NONE" +134,"-","Reserved","-","UC_NONE" +135,"-","Reserved","-","UC_NONE" +136,"-","Reserved","-","UC_NONE" +137,"-","Reserved","-","UC_NONE" +138,"-","Reserved","-","UC_NONE" +139,"-","Reserved","-","UC_NONE" +140,"-","Reserved","-","UC_NONE" +141,"-","Reserved","-","UC_NONE" +142,"-","Reserved","-","UC_NONE" +143,"-","Reserved","-","UC_NONE" +144,"-","Reserved","-","UC_NONE" +145,"-","Reserved","-","UC_NONE" +146,"-","Reserved","-","UC_NONE" +147,"-","Reserved","-","UC_NONE" +148,"-","Reserved","-","UC_NONE" +149,"-","Reserved","-","UC_NONE" +150,"-","Reserved","-","UC_NONE" +151,"-","Reserved","-","UC_NONE" +152,"-","Reserved","-","UC_NONE" +153,"-","Reserved","-","UC_NONE" +154,"-","Reserved","-","UC_NONE" +155,"-","Reserved","-","UC_NONE" +156,"-","Reserved","-","UC_NONE" +157,"-","Reserved","-","UC_NONE" +158,"-","Reserved","-","UC_NONE" +159,"-","Reserved","-","UC_NONE" +160,"-","Reserved","-","UC_NONE" +161,"-","Reserved","-","UC_NONE" +162,"-","Reserved","-","UC_NONE" +163,"-","Reserved","-","UC_NONE" +164,"-","Reserved","-","UC_NONE" +165,"-","Reserved","-","UC_NONE" +166,"-","Reserved","-","UC_NONE" +167,"-","Reserved","-","UC_NONE" +168,"-","Reserved","-","UC_NONE" +169,"-","Reserved","-","UC_NONE" +170,"-","Reserved","-","UC_NONE" +171,"-","Reserved","-","UC_NONE" +172,"-","Reserved","-","UC_NONE" +173,"-","Reserved","-","UC_NONE" +174,"-","Reserved","-","UC_NONE" +175,"-","Reserved","-","UC_NONE" +176,"-","Reserved","-","UC_NONE" +177,"-","Reserved","-","UC_NONE" +178,"-","Reserved","-","UC_NONE" +179,"-","Reserved","-","UC_NONE" +180,"-","Reserved","-","UC_NONE" +181,"-","Reserved","-","UC_NONE" +182,"-","Reserved","-","UC_NONE" +183,"-","Reserved","-","UC_NONE" +184,"-","Reserved","-","UC_NONE" +185,"-","Reserved","-","UC_NONE" +186,"-","Reserved","-","UC_NONE" +187,"-","Reserved","-","UC_NONE" +188,"-","Reserved","-","UC_NONE" +189,"-","Reserved","-","UC_NONE" +190,"-","Reserved","-","UC_NONE" +191,"-","Reserved","-","UC_NONE" +192,"LFTX","Surface Lifted Index","K","UC_NONE" +193,"4LFTX","Best (4 layer) Lifted Index","K","UC_NONE" +194,"RI","Richardson Number","Numeric","UC_NONE" +195,"CWDI","Convective Weather Detection Index","-","UC_NONE" +196,"UVI","Ultra Violet Index","W/m^2","UC_NONE" +197,"UPHL","Updraft Helicity","m^2/s^2","UC_NONE" +198,"LAI","Leaf Area Index","Numeric","UC_NONE" +199,"MXUPHL","Hourly Maximum of Updraft Helicity over Layer 2km to 5 km AGL","m^2/s^2","UC_NONE" +200,"MNUPHL","Hourly Minimum of Updraft Helicity","m^2/s^2","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv new file mode 100644 index 00000000..31a83499 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"WVSP1","Wave spectra (1)","-","UC_NONE" +1,"WVSP2","Wave spectra (2)","-","UC_NONE" +2,"WVSP3","Wave spectra (3)","-","UC_NONE" +3,"HTSGW","Significant height of combined wind waves and swell","m","UC_M2Feet" +4,"WVDIR","Direction of wind waves","Degree true","UC_NONE" +5,"WVHGT","Significant height of wind waves","m","UC_M2Feet" +6,"WVPER","Mean period of wind waves","s","UC_NONE" +7,"SWDIR","Direction of swell waves","Degree true","UC_NONE" +8,"SWELL","Significant height of swell waves","m","UC_NONE" +9,"SWPER","Mean period of swell waves","s","UC_NONE" +10,"DIRPW","Primary wave direction","Degree true","UC_NONE" +11,"PERPW","Primary wave mean period","s","UC_NONE" +12,"DIRSW","Secondary wave direction","Degree true","UC_NONE" +13,"PERSW","Secondary wave mean period","s","UC_NONE" +14,"WWSDIR","Direction of Combined Wind Waves and Swell","Degree true","UC_NONE" +15,"MWSPER","Mean Period of Combined Wind Waves and Swell","s","UC_NONE" +16,"CDWW","Coefficient of Drag With Waves","-","UC_NONE" +17,"FRICV","Friction Velocity","m/s","UC_NONE" +18,"WSTR","Wave Stress","N/(m^2)","UC_NONE" +19,"NWSTR","Normalised Waves Stress","-","UC_NONE" +20,"MSSW","Mean Square Slope of Waves","-","UC_NONE" +21,"USSD","U-component Surface Stokes Drift","m/s","UC_NONE" +22,"VSSD","V-component Surface Stokes Drift","m/s","UC_NONE" +23,"PMAXWH","Period of Maximum Individual Wave Height","s","UC_NONE" +24,"MAXWH","Maximum Individual Wave Height","m","UC_NONE" +25,"IMWF","Inverse Mean Wave Frequency","s","UC_NONE" +26,"IMFWW","Inverse Mean Frequency of The Wind Waves","s","UC_NONE" +27,"IMFTSW","Inverse Mean Frequency of The Total Swell","s","UC_NONE" +28,"MZWPER","Mean Zero-Crossing Wave Period","s","UC_NONE" +29,"MZPWW","Mean Zero-Crossing Period of The Wind Waves","s","UC_NONE" +30,"MZPTSW","Mean Zero-Crossing Period of The Total Swell","s","UC_NONE" +31,"WDIRW","Wave Directional Width","-","UC_NONE" +32,"DIRWWW","Directional Width of The Wind Waves","-","UC_NONE" +33,"DIRWTS","Directional Width of The Total Swell","-","UC_NONE" +34,"PWPER","Peak Wave Period","s","UC_NONE" +35,"PPERWW","Peak Period of The Wind Waves","s","UC_NONE" +36,"PPERTS","Peak Period of The Total Swell","s","UC_NONE" +37,"ALTWH","Altimeter Wave Height","m","UC_NONE" +38,"ALCWH","Altimeter Corrected Wave Height","m","UC_NONE" +39,"ALRRC","Altimeter Range Relative Correction","-","UC_NONE" +40,"MNWSOW","10 Metre Neutral Wind Speed Over Waves","m/s","UC_NONE" +41,"MWDIRW","10 Metre Wind Direction Over Waves","Degree true","UC_NONE" +42,"WESP","Wave Energy Spectrum","s/((m^2)*rad)","UC_NONE" +43,"KSSEW","Kurtosis of The Sea Surface Elevation Due to Waves","-","UC_NONE" +44,"BENINX","Benjamin-Feir Index","-","UC_NONE" +45,"SPFTR","Spectral Peakedness Factor","1/s","UC_NONE" +46,"","Peak wave direction","deg","UC_NONE" +47,"","Significant wave height of first swell partition","m","UC_NONE" +48,"","Significant wave height of second swell partition","m","UC_NONE" +49,"","Significant wave height of third swell partition","m","UC_NONE" +50,"","Mean wave period of first swell partition","s","UC_NONE" +51,"","Mean wave period of second swell partition","s","UC_NONE" +52,"","Mean wave period of third swell partition","s","UC_NONE" +53,"","Mean wave direction of first swell partition","deg","UC_NONE" +54,"","Mean wave direction of second swell partition","deg","UC_NONE" +55,"","Mean wave direction of third swell partition","deg","UC_NONE" +56,"","Wave directional width of first swell partition","-","UC_NONE" +57,"","Wave directional width of second swell partition","-","UC_NONE" +58,"","Wave directional width of third swell partition","-","UC_NONE" +59,"","Wave frequency width of first swell partition","-","UC_NONE" +60,"","Wave frequency width of second swell partition","-","UC_NONE" +61,"","Wave frequency width of third swell partition","-","UC_NONE" +62,"","Wave frequency width","-","UC_NONE" +63,"","Frequency width of wind waves","-","UC_NONE" +64,"","Frequency width of total swell","-","UC_NONE" +65,"","Peak wave period of first swell partition","s","UC_NONE" +66,"","Peak wave period of second swell partition","s","UC_NONE" +67,"","Peak wave period of third swell partition","s","UC_NONE" +68,"","Peak wave direction of first swell partition","degree true","UC_NONE" +69,"","Peak wave direction of second swell partition","degree true","UC_NONE" +70,"","Peak wave direction of third swell partition","degree true","UC_NONE" +71,"","Peak direction of wind waves","degree true","UC_NONE" +72,"","Peak direction of total swell","degree true","UC_NONE" +73,"","Whitecap fraction","fraction","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv new file mode 100644 index 00000000..a98bd659 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"DIRC","Current direction","Degree true","UC_NONE" +1,"SPC","Current speed","m/s","UC_NONE" +2,"UOGRD","u-component of current","m/s","UC_NONE" +3,"VOGRD","v-component of current","m/s","UC_NONE" +4,"RIPCOP","Rip Current Occurrence Probability","%","UC_NONE" +5,"","Eastward current","m s-1","UC_NONE" +6,"","Northward current","m s-1","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv new file mode 100644 index 00000000..c44844d0 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TSEC","Seconds prior to initial reference time (defined in Section 1)","s","UC_NONE" +1,"MOSF","Meridonal Overturning Stream Function","m^3/s","UC_NONE" +2,"","Reserved","-","UC_NONE" +3,"DSLOBS","Days Since Last Observation","d","UC_NONE" +4,"","Barotropic stream function","m3 s-1","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv new file mode 100644 index 00000000..39f52d80 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"ICEC","Ice cover","Proportion","UC_NONE" +1,"ICETK","Ice thinkness","m","UC_NONE" +2,"DICED","Direction of ice drift","Degree true","UC_NONE" +3,"SICED","Speed of ice drift","m/s","UC_NONE" +4,"UICE","u-component of ice drift","m/s","UC_NONE" +5,"VICE","v-component of ice drift","m/s","UC_NONE" +6,"ICEG","Ice growth rate","m/s","UC_NONE" +7,"ICED","Ice divergence","1/s","UC_NONE" +8,"ICET","Ice temperature","K","UC_NONE" +9,"ICEPRS","Module of Ice Internal Pressure","Pa*m","UC_NONE" +10,"ZVCICEP","Zonal Vector Component of Vertically Integrated Ice Internal Pressure","Pa*m","UC_NONE" +11,"MVCICEP","Meridional Vector Component of Vertically Integrated Ice Internal Pressure","Pa*m","UC_NONE" +12,"CICES","Compressive Ice Strength","N/m","UC_NONE" +13,"","Snow temperature (over sea ice)","K","UC_NONE" +14,"","Albedo","Numeric","UC_NONE" +15,"","Sea ice volume per unit area","m3 m-2","UC_NONE" +16,"","Snow volume over sea ice per unit area","m3 m-2","UC_NONE" +17,"","Sea ice heat content","J m-2","UC_NONE" +18,"","Snow over sea ice heat content","J m-2","UC_NONE" +19,"","Ice freeboard thickness","m","UC_NONE" +20,"","Ice melt pond fraction","fraction","UC_NONE" +21,"","Ice melt pond depth","m","UC_NONE" +22,"","Ice melt pond volume per unit area","m3 m-2","UC_NONE" +23,"","Sea ice fraction tendency due to parameterization","s-1","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv new file mode 100644 index 00000000..702aab68 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"WTMP","Water temperature","K","UC_NONE" +1,"DSLM","Deviation of sea level from mean","m","UC_NONE" +2,"CH","Heat Exchange Coefficient","","UC_NONE" +3,"","Practical salinity","Numeric","UC_NONE" +4,"","Downward heat flux","W m-2","UC_NONE" +5,"","Eastward surface stress","N m-2","UC_NONE" +6,"","Northward surface stress","N m-2","UC_NONE" +7,"","x-component surface stress","N m-2","UC_NONE" +8,"","y-component surface stress","N m-2","UC_NONE" +9,"","Thermosteric change in sea surface height","m","UC_NONE" +10,"","Halosteric change in sea surface height","m","UC_NONE" +11,"","Steric change in sea surface height","m","UC_NONE" +12,"","Sea salt flux","kg m-2 s-1","UC_NONE" +13,"","Net upward water flux","kg m-2 s-1","UC_NONE" +14,"","Eastward surface water velocity","m s-1","UC_NONE" +15,"","Northward surface water velocity","m s-1","UC_NONE" +16,"","x-component of surface water velocity","m s-1","UC_NONE" +17,"","y-component of surface water velocity","m s-1","UC_NONE" +18,"","Heat flux correction","W m-2","UC_NONE" +19,"","Sea surface height tendency due to parameterization","m s-1","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv new file mode 100644 index 00000000..d661b864 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"MTHD","Main thermocline depth","m","UC_NONE" +1,"MTHA","Main thermocline anomaly","m","UC_NONE" +2,"TTHDP","Transient thermocline depth","m","UC_NONE" +3,"SALTY","Salinity","kg/kg","UC_NONE" +4,"OVHD","Ocean Vertical Heat Diffusivity","m^2/s","UC_NONE" +5,"OVSD","Ocean Vertical Salt Diffusivity","m^2/s","UC_NONE" +6,"OVMD","Ocean Vertical Momentum Diffusivity","m^2/s","UC_NONE" +7,"BATHY","Bathymetry","m","UC_NONE" +8,"","Reserved","-","UC_NONE" +9,"","Reserved","-","UC_NONE" +10,"","Reserved","-","UC_NONE" +11,"SFSALP","Shape Factor With Respect To Salinity Profile","","UC_NONE" +12,"SFTMPP","Shape Factor With Respect To Temperature Profile In Thermocline","","UC_NONE" +13,"ACWSRD","Attenuation Coefficient Of Water With Respect to Solar Radiation","1/m","UC_NONE" +14,"WDEPTH","Water Depth","m","UC_NONE" +15,"WTMPSS","Water Temperature","K","UC_NONE" +16,"","Water density (rho)","kg m-3","UC_NONE" +17,"","Water density anomaly (sigma)","kg m-3","UC_NONE" +18,"","Water potential temperature (theta)","K","UC_NONE" +19,"","Water potential density (rho theta)","kg m-3","UC_NONE" +20,"","Water potential density anomaly (sigma theta)","kg m-3","UC_NONE" +21,"","Practical salinity","Numeric","UC_NONE" +22,"","Water column-integrated heat content","J m-2","UC_NONE" +23,"","Eastward water velocity","m s-1","UC_NONE" +24,"","Northward water velocity","m s-1","UC_NONE" +25,"","x-component water velocity","m s-1","UC_NONE" +26,"","y-component water velocity","m s-1","UC_NONE" +27,"","Upward water velocity","m s-1","UC_NONE" +28,"","Vertical eddy diffusivity","m2 s-1","UC_NONE" +29,"","Bottom pressure equivalent height","m","UC_NONE" +30,"","Fresh water flux into sea water from rivers","kg m-2 s-1","UC_NONE" +31,"","Fresh water flux correction","kg m-2 s-1","UC_NONE" +32,"","Virtual salt flux into sea water","g kg-1 m-2 s-1","UC_NONE" +33,"","Virtual salt flux correction","g kg-1 m-2 s-1","UC_NONE" +34,"","Sea water temperature tendency due to Newtonian relaxation","K s-1","UC_NONE" +35,"","Sea water salinity tendency due to Newtonian relaxation","g kg-1 s-1","UC_NONE" +36,"","Sea water temperature tendency due to parameterization","K s-1","UC_NONE" +37,"","Sea water salinity tendency due to parameterization","g kg-1 s-1","UC_NONE" +38,"","Eastward sea water velocity tendency due to parameterization","m-2 s-1","UC_NONE" +39,"","Northward sea water velocity tendency due to parameterization","m-2 s-1","UC_NONE" +40,"","Sea water temperature tendency due to direct bias correction","K s-1","UC_NONE" +41,"","Sea water salinity tendency due to direct bias correction","g kg-1 s-1","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv new file mode 100644 index 00000000..97dfcee8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"FFLDG","Flash flood guidance","kg/(m^2)","UC_NONE" +1,"FFLDRO","Flash flood runoff","kg/(m^2)","UC_NONE" +2,"RSSC","Remotely sensed snow cover","0-49=Reserved; 50=No-snow/no-cloud; 51-99=Reserved; 100=Clouds; 101-249=Reserved; 250=Snow; 251-254=Reserved for local use; 255=Missing","UC_NONE" +3,"ESCT","Elevation of snow covered terrain","0-90=Elevation in increments of 100 m; 91-253=Reserved; 254=Clouds; 255=Missing","UC_NONE" +4,"SWEPON","Snow water equivalent percent of normal","%","UC_NONE" +5,"BGRUN","Baseflow-groundwater runoff","kg/(m^2)","UC_NONE" +6,"SSRUN","Storm surface runoff","kg/(m^2)","UC_NONE" +7,"","Discharge from rivers or streams","m3/s","UC_NONE" +8,"","Groundwater upper storage","kg m-2","UC_NONE" +9,"","Groundwater lower storage","kg m-2","UC_NONE" +10,"","Side flow into river channel","m3 s-1 m-1","UC_NONE" +11,"","River storage of water","m3","UC_NONE" +12,"","Floodplain storage of water","m3","UC_NONE" +13,"","Depth of water on soil surface","kg m-2","UC_NONE" +14,"","Upstream accumulated precipitation","kg m-2","UC_NONE" +15,"","Upstream accumulated snow melt","kg m-2","UC_NONE" +16,"","Percolation rate","kg m-2 s-1","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv new file mode 100644 index 00000000..46d8db1a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"CPPOP","Conditional percent precipitation amount fractile for an overall period","kg/(m^2)","UC_NONE" +1,"PPOSP","Percent precipitation in a sub-period of an overall period","%","UC_NONE" +2,"PoP","Probability of 0.01 inch of precipitation","%","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv new file mode 100644 index 00000000..2accdbb4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Water depth","m","UC_NONE" +1,"","Water temperature","K","UC_NONE" +2,"","Water fraction","Proportion","UC_NONE" +3,"","Sediment thickness","m","UC_NONE" +4,"","Sediment temperature","K","UC_NONE" +5,"","Ice thickness","m","UC_NONE" +6,"","Ice temperature","K","UC_NONE" +7,"","Ice cover","Proportion","UC_NONE" +8,"","Land cover (0 = water, 1 = land)","Proportion","UC_NONE" +9,"","Shape factor with respect to salinity profile","-","UC_NONE" +10,"","Shape factor with respect to temperature profile in thermocline","-","UC_NONE" +11,"","Attenuation coefficient of water with respect to solar radiation","/m","UC_NONE" +12,"","Salinity","kg/kg","UC_NONE" +13,"","Cross-sectional area of flow in channel","m2","UC_NONE" +14,"","Snow temperature","K","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv new file mode 100644 index 00000000..c9c7c8f4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Universal thermal climate index","K","UC_NONE" +1,"","Mean radiant temperature","K","UC_NONE" +2,"","Wet-bulb globe temperature","K","UC_NONE" +3,"","Globe temperature","K","UC_NONE" +4,"","Humidex","K","UC_NONE" +5,"","Effective temperature","K","UC_NONE" +6,"","Normal effective temperature","K","UC_NONE" +7,"","Standard effective temperature","K","UC_NONE" +8,"","Physiological equivalent temperature","K","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv new file mode 100644 index 00000000..7979fbe8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Malaria cases","Fraction","UC_NONE" +1,"","Malaria circumsporozoite protein rate","Fraction","UC_NONE" +2,"","Plasmodium falciparum entomological inoculation rate","Bites per day per person","UC_NONE" +3,"","Human bite rate by anopheles vectors","Bites per day per person","UC_NONE" +4,"","Malaria immunity","Fraction","UC_NONE" +5,"","Falciparum parasite rates","Fraction","UC_NONE" +6,"","Detectable falciparum parasite ratio (after day 10)","Fraction","UC_NONE" +7,"","Anopheles vector to host ratio","Fraction","UC_NONE" +8,"","Anopheles vector number","Number m-2","UC_NONE" +9,"","Fraction of malarial vector reproductive habitat","Fraction","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv new file mode 100644 index 00000000..0af83c95 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Population density","Person m-2","UC_NONE" +1,"","Reserved","","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv new file mode 100644 index 00000000..cdc202bf --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"LAND","Land cover (1=land; 2=sea)","Proportion","UC_NONE" +1,"SFCR","Surface roughness","m","UC_NONE" +2,"TSOIL","Soil temperature","K","UC_NONE" +3,"SOILM","Soil moisture content","kg/(m^2)","UC_NONE" +4,"VEG","Vegetation","%","UC_NONE" +5,"WATR","Water runoff","kg/(m^2)","UC_NONE" +6,"EVAPT","Evapotranspiration","1/(kg^2 s)","UC_NONE" +7,"MTERH","Model terrain height","m","UC_NONE" +8,"LANDU","Land use","0=Reserved; 1=Urban land; 2=Agriculture; 3=Range land; 4=Deciduous forest; 5=Coniferous forest; 6=Forest/wetland; 7=Water; 8=Wetlands; 9=Desert; 10=Tundra; 11=Ice; 12=Tropical forest; 13=Savannah; 14-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +9,"SOILW","Volumetric soil moisture content","Proportion","UC_NONE" +10,"GFLUX","Ground heat flux","W/(m^2)","UC_NONE" +11,"MSTAV","Moisture availability","%","UC_NONE" +12,"SFEXC","Exchange coefficient","(kg/(m^3))(m/s)","UC_NONE" +13,"CNWAT","Plant canopy surface water","kg/(m^2)","UC_NONE" +14,"BMIXL","Blackadar's mixing length scale","m","UC_NONE" +15,"CCOND","Canopy conductance","m/s","UC_NONE" +16,"RSMIN","Minimal stomatal resistance","s/m","UC_NONE" +17,"WILT","Wilting point","Proportion","UC_NONE" +18,"RCS","Solar parameter in canopy conductance","Proportion","UC_NONE" +19,"RCT","Temperature parameter in canopy conductance","Proportion","UC_NONE" +20,"RCSOL","Soil moisture parameter in canopy conductance","Proportion","UC_NONE" +21,"RCQ","Humidity parameter in canopy conductance","Proportion","UC_NONE" +22,"SOILM","Soil moisture","kg/m^3","UC_NONE" +23,"CISOILW","Column-integrated soil water","kg/m^2","UC_NONE" +24,"HFLUX","Heat flux","W/m^2","UC_NONE" +25,"VSOILM","Volumetric soil moisture","m^3/m^3","UC_NONE" +26,"WILT","Wilting point","kg/m^3","UC_NONE" +27,"VWILTM","Volumetric wilting moisture","m^3/m^3","UC_NONE" +28,"LEAINX","Leaf Area Index","Numeric","UC_NONE" +29,"EVGFC","Evergreen Forest Cover","Proportion","UC_NONE" +30,"DECFC","Deciduous Forest Cover","Proportion","UC_NONE" +31,"NDVINX","Normalized Differential Vegetation Index (NDVI)","Numeric","UC_NONE" +32,"RDVEG","Root Depth of Vegetation","m","UC_NONE" +33,"WROD","Water Runoff and Drainage","kg/(m^2)","UC_NONE" +34,"SFCWRO","Surface Water Runoff","kg/(m^2)","UC_NONE" +35,"TCLASS","Tile Class","0=Reserved; 1=Evergreen broadleaved forest; 2=Deciduous broadleaved closed forest; 3=Deciduous broadleaved open forest; 4=Evergreen needle-leaf forest; 5=Deciduous needle-leaf forest; 6=Mixed leaf trees; 7=Freshwater flooded trees; 8=Saline water flooded trees; 9=Mosaic tree/natural vegetation; 10=Burnt tree cover; 11=Evergreen shrubs closed-open; 12=Deciduous shrubs closed-open; 13=Herbaceous vegetation closed-open; 14=Sparse herbaceous or grass; 15=Flooded shrubs or herbaceous; 16=Cultivated and managed areas; 17=Mosaic crop/tree/natural vegetation; 18=Mosaic crop/shrub/grass; 19=Bare areas; 20=Water; 21=Snow and ice; 22=Artificial surface; 23=Ocean; 24=Irrigated croplands; 25=Rainfed croplands; 26=Mosaic cropland (50-70%) - vegetation (20-50%); 27=Mosaic vegetation (50-70%) - cropland (20-50%); 28=Closed broadleaved evergreen forest; 29=Closed needle-leaved evergreen forest; 30=Open needle-leaved deciduous forest; 31=Mixed broadleaved and needle-leaved forest; 32=Mosaic shrubland (50-70%) - grassland (20-50%); 33=Mosaic grassland (50-70%) - shrubland (20-50%); 34=Closed to open shrubland; 35=Sparse vegetation; 36=Closed to open forest regularly flooded; 37=Closed forest or shrubland permanently flooded; 38=Closed to open grassland regularly flooded; 39=Undefined; 40-32767=Reserved; 32768-=Reserved for local use","UC_NONE" +36,"TFRCT","Tile Fraction","Proportion","UC_NONE" +37,"TPERCT","Tile Percentage","%","UC_NONE" +38,"SOILVIC","Soil Volumetric Ice Content (Water Equivalent) ","m^3/m^3","UC_NONE" +39,"","Evapotranspiration rate","kg m-2 s-1","UC_NONE" +40,"","Potential evapotranspiration rate","kg m-2 s-1","UC_NONE" +41,"","Snow melt rate","kg m-2 s-1","UC_NONE" +42,"","Water runoff and drainage rate","kg m-2 s-1","UC_NONE" +43,"","Drainage direction","0=Reserved; 1=South-west; 2=South; 3=South-east; 4=West; 5=No direction; 6=East; 7=North-west; 8=North; 9=North-east; 10-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +44,"","Upstream area","m2","UC_NONE" +45,"","Wetland cover","Proportion","UC_NONE" +46,"","Wetland type","0=Reserved; 1=Bog; 2=Drained; 3=Fen; 4=Floodplain; 5=Mangrove; 6=Marsh; 7=Rice; 8=Riverine; 9=Salt marsh; 10=Swamp; 11=Upland; 12=Wet tundra; 13-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +47,"","Irrigation cover","Proportion","UC_NONE" +48,"","C4 crop cover","Proportion","UC_NONE" +49,"","C4 grass cover","Proportion","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv new file mode 100644 index 00000000..bf0a81be --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"SOTYP","Soil type","0=Reserved; 1=Sand; 2=Loamy sand; 3=Sandy loam; 4=Silt loam; 5=Organic (redefined); 6=Sandy clay loam; 7=Silt clay loam; 8=Clay loam; 9=Sandy clay; 10=Silty clay; 11=Clay; 12-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +1,"UPLST","Upper layer soil temperature","K","UC_NONE" +2,"UPLSM","Upper layer soil moisture","kg/(m^3)","UC_NONE" +3,"LOWLSM","Lower layer soil moisture","kg/(m^3)","UC_NONE" +4,"BOTLST","Bottom layer soil temperature","K","UC_NONE" +5,"SOILL","Liquid volumetric soil moisture (non-frozen)","Proportion","UC_NONE" +6,"RLYRS","Number of soil layers in root zone","Numeric","UC_NONE" +7,"SMREF","Transpiration stress-onset (soil moisture)","Proportion","UC_NONE" +8,"SMDRY","Direct evaporation cease (soil moisture)","Proportion","UC_NONE" +9,"POROS","Soil porosity","Proportion","UC_NONE" +10,"LIQVSM","Liquid volumetric soil moisture (non-frozen)","m^3/m^3","UC_NONE" +11,"VOLTSO","Volumetric transpiration stress-onset (soil moisture)","m^3/m^3","UC_NONE" +12,"TRANSO","Transpiration stress-onset (soil moisture)","kg/m^3","UC_NONE" +13,"VOLDEC","Volumetric direct evaporation cease (soil moisture)","m^3/m^3","UC_NONE" +14,"DIREC","Direct evaporation cease (soil moisture)","kg/m^3","UC_NONE" +15,"SOILP","Soil porosity","m^3/m^3","UC_NONE" +16,"VSOSM","Volumetric saturation of soil moisture","m^3/m^3","UC_NONE" +17,"SATOSM","Saturation of soil moisture","kg/m^3","UC_NONE" +18,"SOILTMP","Soil Temperature","K","UC_NONE" +19,"SOILMOI","Soil Moisture","kg/(m^3)","UC_NONE" +20,"CISOILM","Column-Integrated Soil Moisture","kg/(m^2)","UC_NONE" +21,"SOILICE","Soil Ice","kg/(m^3)","UC_NONE" +22,"CISICE","Column-Integrated Soil Ice","kg/(m^2)","UC_NONE" +23,"LWSNWP","Liquid Water in Snow Pack","kg/(m^2)","UC_NONE" +24,"FRSTINX","Frost Index","kg/day","UC_NONE" +25,"SNWDEB","Snow Depth at Elevation Bands","kg/(m^2)","UC_NONE" +26,"SHFLX","Soil Heat Flux","W/(m^2)","UC_NONE" +27,"SOILDEP","Soil Depth","m","UC_NONE" +28,"","Snow temperature","K","UC_NONE" +29,"","Ice temperature","K","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv new file mode 100644 index 00000000..7ce05191 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Fire outlook","0=No risk area; 1=Reserved; 2=General thunderstorm risk area; 3=Reserved; 4=Slight risk area; 5=Reserved; 6=Moderate risk area; 7=Reserved; 8=High risk area; 9-10=Reserved; 11=Dry thunderstorm (dry lightning) risk area; 12-13=Reserved; 14=Critical risk area; 15-17=Reserved; 18=Extremely critical risk area; 19-254=Reserved; 255=Missing","UC_NONE" +1,"","Fire outlook due to dry thunderstorm","0=No risk area; 1=Reserved; 2=General thunderstorm risk area; 3=Reserved; 4=Slight risk area; 5=Reserved; 6=Moderate risk area; 7=Reserved; 8=High risk area; 9-10=Reserved; 11=Dry thunderstorm (dry lightning) risk area; 12-13=Reserved; 14=Critical risk area; 15-17=Reserved; 18=Extremely critical risk area; 19-254=Reserved; 255=Missing","UC_NONE" +2,"","Haines index","Numeric","UC_NONE" +3,"","Fire burned area","%","UC_NONE" +4,"","Fosberg index","Numeric","UC_NONE" +5,"","Forest Fire Weather Index (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +6,"","Fine Fuel Moisture Code (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +7,"","Duff Moisture Code (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +8,"","Drought Code (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +9,"","Initial Fire Spread Index (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +10,"","Fire Buildup Index (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +11,"","Fire Daily Severity Rating (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +12,"","Keetch-Byram drought index","Numeric","UC_NONE" +13,"","Drought factor (as defined by the Australian forest service )","Numeric","UC_NONE" +14,"","Rate of spread (as defined by the Australian forest service )","m/s","UC_NONE" +15,"","Fire danger index (as defined by the Australian forest service )","Numeric","UC_NONE" +16,"","Spread component (as defined by the US Forest Service National Fire Danger Rating System)","Numeric","UC_NONE" +17,"","Burning index (as defined by the US Forest Service National Fire Danger Rating System)","Numeric","UC_NONE" +18,"","Ignition component (as defined by the US Forest Service National Fire Danger Rating System)","%","UC_NONE" +19,"","Energy release component (as defined by the US Forest Service National Fire Danger Rating System)","Joule/m2","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv new file mode 100644 index 00000000..c6409cf7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Glacier cover","Proportion","UC_NONE" +1,"","Glacier temperature","K","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv new file mode 100644 index 00000000..a3fca888 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Urban cover","Proportion","UC_NONE" +1,"","Road cover","Proportion","UC_NONE" +2,"","Building cover","Proportion","UC_NONE" +3,"","Building height","m","UC_NONE" +4,"","Vertical-to-horizontal area fraction","m2 m-2","UC_NONE" +5,"","Standard deviation of building height","m","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv new file mode 100644 index 00000000..ff829d8a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"SRAD","Scaled radiance","Numeric","UC_NONE" +1,"SALBEDO","Scaled albedo","Numeric","UC_NONE" +2,"SBTMP","Scaled brightness temperature","Numeric","UC_NONE" +3,"SPWAT","Scaled precipitable water","Numeric","UC_NONE" +4,"SLFTI","Scaled lifted index","Numeric","UC_NONE" +5,"SCTPRES","Scaled cloud top pressure","Numeric","UC_NONE" +6,"SSTMP","Scaled skin temperature","Numeric","UC_NONE" +7,"CLOUDM","Cloud mask","0=Clear over water; 1=Clear over land; 2=Cloud; 3=No data; 4-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +8,"PIXST","Pixel scene type","0=No scene identified; 1=Green needle-leafed forest; 2=Green broad-leafed forest; 3=Deciduous needle-leafed forest; 4=Deciduous broad-leafed forest; 5=Deciduous mixed forest; 6=Closed shrub-land; 7=Open shrub-land; 8=Woody savannah; 9=Savannah; 10=Grassland; 11=Permanent wetland; 12=Cropland; 13=Urban; 14=Vegetation/crops; 15=Permanent snow/ice; 16=Barren desert; 17=Water bodies; 18=Tundra; 19=Warm liquid water cloud; 20=Supercooled liquid water cloud; 21=Mixed-phase cloud; 22=Optically thin ice cloud; 23=Optically thick ice cloud; 24=Multilayered cloud; 25-96=Reserved; 97=Snow/ice on land; 98=Snow/ice on water; 99=Sun-glint; 100=General cloud; 101=Low cloud/fog/stratus; 102=Low cloud/stratocumulus; 103=Low cloud/unknown type; 104=Medium cloud/nimbostratus; 105=Medium cloud/altostratus; 106=Medium cloud/unknown type; 107=High cloud/cumulus; 108=High cloud/cirrus; 109=High cloud/unknown; 110=Unknown cloud type; 111=Single layer water cloud; 112=Single layer ice cloud; 113-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +9,"FIREDI","Fire detection indicator","0=No fire detected; 1=Possible fire detected; 2=Probable fire detected; 3=Missing","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv new file mode 100644 index 00000000..0a6d634c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"ESTP","Estimated precipitation","kg/(m^2)","UC_NONE" +1,"IRRATE","Instantaneous rain rate","kg/(m^2*s)","UC_NONE" +2,"CTOPH","Cloud top height","kg/(m^2*s)","UC_NONE" +3,"CTOPHQI","Cloud top height quality indicator","0=Nominal cloud top height quality; 1=Fog in segment; 2=Poor quality height estimation; 3=Fog in segment and poor quality height estimation; 4-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +4,"ESTUGRD","Estimated u component of wind","m/s","UC_NONE" +5,"ESTVGRD","Estimated v component of wind","m/s","UC_NONE" +6,"NPIXU","Number of pixels used","Numeric","UC_NONE" +7,"SOLZA","Solar zenith angle","Degree","UC_NONE" +8,"RAZA","Relative azimuth angle","Degree","UC_NONE" +9,"RFL06","Reflectance in 0.6 micron channel","%","UC_NONE" +10,"RFL08","Reflectance in 0.8 micron channel","%","UC_NONE" +11,"RFL16","Reflectance in 1.6 micron channel","%","UC_NONE" +12,"RFL39","Reflectance in 3.9 micron channel","%","UC_NONE" +13,"ATMDIV","Atmospheric divergence","1/s","UC_NONE" +14,"CBTMP","Cloudy Brightness Temperature","K","UC_NONE" +15,"CSBTMP","Clear Sky Brightness Temperature","K","UC_NONE" +16,"CLDRAD","Cloudy Radiance (with respect to wave number)","W/(m*sr)","UC_NONE" +17,"CSKYRAD","Clear Sky Radiance (with respect to wave number)","W/(m*sr)","UC_NONE" +18,"","Reserved","-","UC_NONE" +19,"WINDS","Wind Speed","m/s","UC_NONE" +20,"AOT06","Aerosol Optical Thickness at 0.635 µm","","UC_NONE" +21,"AOT08","Aerosol Optical Thickness at 0.810 µm","","UC_NONE" +22,"AOT16","Aerosol Optical Thickness at 1.640 µm","","UC_NONE" +23,"ANGCOE","Angstrom Coefficient","","UC_NONE" +24,"","Reserved","-","UC_NONE" +25,"","Reserved","-","UC_NONE" +26,"","Reserved","-","UC_NONE" +27,"BRFLF","Bidirectional Reflecance Factor","Numeric","UC_NONE" +28,"SPBRT","Brightness Temperature","K","UC_NONE" +29,"SRAD","Scaled Radiance","Numeric","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates","Numeric","UC_NONE" +99,"","Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates","kg m-2 s-1","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv new file mode 100644 index 00000000..c0c107e0 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv @@ -0,0 +1,28 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Clear sky probability","%","UC_NONE" +1,"","Cloud top temperature","K","UC_NONE" +2,"","Cloud top pressure","Pa","UC_NONE" +3,"","Cloud type","0=No scene identified; 1=Green needle-leafed forest; 2=Green broad-leafed forest; 3=Deciduous needle-leafed forest; 4=Deciduous broad-leafed forest; 5=Deciduous mixed forest; 6=Closed shrub-land; 7=Open shrub-land; 8=Woody savannah; 9=Savannah; 10=Grassland; 11=Permanent wetland; 12=Cropland; 13=Urban; 14=Vegetation/crops; 15=Permanent snow/ice; 16=Barren desert; 17=Water bodies; 18=Tundra; 19=Warm liquid water cloud; 20=Supercooled liquid water cloud; 21=Mixed-phase cloud; 22=Optically thin ice cloud; 23=Optically thick ice cloud; 24=Multilayered cloud; 25-96=Reserved; 97=Snow/ice on land; 98=Snow/ice on water; 99=Sun-glint; 100=General cloud; 101=Low cloud/fog/stratus; 102=Low cloud/stratocumulus; 103=Low cloud/unknown type; 104=Medium cloud/nimbostratus; 105=Medium cloud/altostratus; 106=Medium cloud/unknown type; 107=High cloud/cumulus; 108=High cloud/cirrus; 109=High cloud/unknown; 110=Unknown cloud type; 111=Single layer water cloud; 112=Single layer ice cloud; 113-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +4,"","Cloud phase","0=No scene identified; 1=Green needle-leafed forest; 2=Green broad-leafed forest; 3=Deciduous needle-leafed forest; 4=Deciduous broad-leafed forest; 5=Deciduous mixed forest; 6=Closed shrub-land; 7=Open shrub-land; 8=Woody savannah; 9=Savannah; 10=Grassland; 11=Permanent wetland; 12=Cropland; 13=Urban; 14=Vegetation/crops; 15=Permanent snow/ice; 16=Barren desert; 17=Water bodies; 18=Tundra; 19=Warm liquid water cloud; 20=Supercooled liquid water cloud; 21=Mixed-phase cloud; 22=Optically thin ice cloud; 23=Optically thick ice cloud; 24=Multilayered cloud; 25-96=Reserved; 97=Snow/ice on land; 98=Snow/ice on water; 99=Sun-glint; 100=General cloud; 101=Low cloud/fog/stratus; 102=Low cloud/stratocumulus; 103=Low cloud/unknown type; 104=Medium cloud/nimbostratus; 105=Medium cloud/altostratus; 106=Medium cloud/unknown type; 107=High cloud/cumulus; 108=High cloud/cirrus; 109=High cloud/unknown; 110=Unknown cloud type; 111=Single layer water cloud; 112=Single layer ice cloud; 113-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +5,"","Cloud optical depth","Numeric","UC_NONE" +6,"","Cloud particle effective radius","m","UC_NONE" +7,"","Cloud liquid water path","kg m-2","UC_NONE" +8,"","Cloud ice water path","kg m-2","UC_NONE" +9,"","Cloud albedo","Numeric","UC_NONE" +10,"","Cloud emissivity","Numeric","UC_NONE" +11,"","Effective absorption optical depth ratio","Numeric","UC_NONE" +30,"","Measurement cost","Numeric","UC_NONE" +31,"","Upper layer cloud optical depth","Numeric","UC_NONE" +32,"","Upper layer cloud top pressure","Pa","UC_NONE" +33,"","Upper layer cloud effective radius","m","UC_NONE" +34,"","Error in upper layer cloud optical depth","Numeric","UC_NONE" +35,"","Error in upper layer cloud top pressure","Pa","UC_NONE" +36,"","Error in upper layer cloud effective radius","m","UC_NONE" +37,"","Lower layer cloud optical depth","Numeric","UC_NONE" +38,"","Lower layer cloud top pressure","Pa","UC_NONE" +39,"","Error in lower layer cloud optical depth","Numeric","UC_NONE" +40,"","Error in lower layer cloud top pressure","Pa","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv new file mode 100644 index 00000000..b8411888 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv @@ -0,0 +1,8 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Probability of encountering marginal visual flight rule conditions","%","UC_NONE" +1,"","Probability of encountering low instrument flight rule conditions","%","UC_NONE" +2,"","Probability of encountering instrument flight rule conditions","%","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv new file mode 100644 index 00000000..d64a3158 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv @@ -0,0 +1,14 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Volcanic ash probability","%","UC_NONE" +1,"","Volcanic ash cloud top temperature","K","UC_NONE" +2,"","Volcanic ash cloud top pressure","Pa","UC_NONE" +3,"","Volcanic ash cloud top height","m","UC_NONE" +4,"","Volcanic ash cloud emissivity","Numeric","UC_NONE" +5,"","Volcanic ash effective absorption optical depth ratio","Numeric","UC_NONE" +6,"","Volcanic ash cloud optical depth","Numeric","UC_NONE" +7,"","Volcanic ash column density","kg m-2","UC_NONE" +8,"","Volcanic ash particle effective radius","m","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv new file mode 100644 index 00000000..82b95c73 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv @@ -0,0 +1,11 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Interface sea-surface temperature","K","UC_NONE" +1,"","Skin sea-surface temperature","K","UC_NONE" +2,"","Sub-skin sea-surface temperature","K","UC_NONE" +3,"","Foundation sea-surface temperature","K","UC_NONE" +4,"","Estimated bias between sea-surface temperature and standard","K","UC_NONE" +5,"","Estimated standard deviation between sea surface temperature and standard","K","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv new file mode 100644 index 00000000..28027d24 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv @@ -0,0 +1,11 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Global solar irradiance","W m-2","UC_NONE" +1,"","Global solar exposure","J m-2","UC_NONE" +2,"","Direct solar irradiance","W m-2","UC_NONE" +3,"","Direct solar exposure","J m-2","UC_NONE" +4,"","Diffuse solar irradiance","W m-2","UC_NONE" +5,"","Diffuse solar exposure","J m-2","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv new file mode 100644 index 00000000..10b7db2e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Temperature","K","UC_NONE" +1,"","Electron temperature","K","UC_NONE" +2,"","Proton temperature","K","UC_NONE" +3,"","Ion temperature","K","UC_NONE" +4,"","Parallel temperature","K","UC_NONE" +5,"","Perpendicular temperature","K","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv new file mode 100644 index 00000000..fc029574 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Velocity magnitude (speed)","m s-1","UC_NONE" +1,"","1st vector component of velocity (coordinate system dependent)","m s-1","UC_NONE" +2,"","2nd vector component of velocity (coordinate system dependent)","m s-1","UC_NONE" +3,"","3rd vector component of velocity (coordinate system dependent)","m s-1","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv new file mode 100644 index 00000000..a10160b7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Scintillation index (sigma phi)","rad","UC_NONE" +1,"","Scintillation index S4","Numeric","UC_NONE" +2,"","Rate of change of TEC index (ROTI)","TECU/min","UC_NONE" +3,"","Disturbance ionosphere index spatial gradient (DIXSG)","Numeric","UC_NONE" +4,"","Along arc TEC rate (AATR)","TECU/min","UC_NONE" +5,"","Kp","Numeric","UC_NONE" +6,"","Equatorial disturbance storm time index (Dst)","nT","UC_NONE" +7,"","Auroral electrojet (AE)","nT","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv new file mode 100644 index 00000000..42629399 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Particle number density","m-3","UC_NONE" +1,"","Electron density","m-3","UC_NONE" +2,"","Proton density","m-3","UC_NONE" +3,"","Ion density","m-3","UC_NONE" +4,"","Vertical total electron content","TECU","UC_NONE" +5,"","HF absorption frequency","Hz","UC_NONE" +6,"","HF absorption","dB","UC_NONE" +7,"","Spread F","m","UC_NONE" +8,"","h'F","m","UC_NONE" +9,"","Critical frequency","Hz","UC_NONE" +10,"","Maximal usable frequency (MUF)","Hz","UC_NONE" +11,"","Peak height (hm)","m","UC_NONE" +12,"","Peak density (Nm)","m-3","UC_NONE" +13,"","Equivalent slab thickness (tau)","km","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv new file mode 100644 index 00000000..8a69646b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Magnetic field magnitude","T","UC_NONE" +1,"","1st vector component of magnetic field","T","UC_NONE" +2,"","2nd vector component of magnetic field","T","UC_NONE" +3,"","3rd vector component of magnetic field","T","UC_NONE" +4,"","Electric field magnitude","V m-1","UC_NONE" +5,"","1st vector component of electric field","V m-1","UC_NONE" +6,"","2nd vector component of electric field","V m-1","UC_NONE" +7,"","3rd vector component of electric field","V m-1","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv new file mode 100644 index 00000000..d4c9da1c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Proton flux (differential)","(m2 s sr eV)-1","UC_NONE" +1,"","Proton flux (integral)","(m2 s sr )-1","UC_NONE" +2,"","Electron flux (differential)","(m2 s sr eV)-1","UC_NONE" +3,"","Electron flux (integral)","(m2 s sr)-1","UC_NONE" +4,"","Heavy ion flux (differential)","(m2 s sr eV/nuc)-1","UC_NONE" +5,"","Heavy ion flux (integral)","(m2 s sr)-1","UC_NONE" +6,"","Cosmic ray neutron flux","h-1","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv new file mode 100644 index 00000000..7d5c1dd9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Amplitude","dB","UC_NONE" +1,"","Phase","rad","UC_NONE" +2,"","Frequency","Hz","UC_NONE" +3,"","Wavelength","m","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv new file mode 100644 index 00000000..1ed55d2c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Integrated solar irradiance","W m-2","UC_NONE" +1,"","Solar X-ray flux (XRS long)","W m-2","UC_NONE" +2,"","Solar X-ray flux (XRS short)","W m-2","UC_NONE" +3,"","Solar EUV irradiance","W m-2","UC_NONE" +4,"","Solar spectral irradiance","W m-2 nm-1","UC_NONE" +5,"","F10.7","W m-2 Hz-1","UC_NONE" +6,"","Solar radio emissions","W m-2 Hz-1","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv new file mode 100644 index 00000000..68f7481a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Limb intensity","J m-2 s-1","UC_NONE" +1,"","Disk intensity","J m-2 s-1","UC_NONE" +2,"","Disk intensity day","J m-2 s-1","UC_NONE" +3,"","Disk intensity night","J m-2 s-1","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv new file mode 100644 index 00000000..037a6bb8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","X-ray radiance","W sr-1 m-2","UC_NONE" +1,"","EUV radiance","W sr-1 m-2","UC_NONE" +2,"","H-alpha radiance","W sr-1 m-2","UC_NONE" +3,"","White light radiance","W sr-1 m-2","UC_NONE" +4,"","CaII-K radiance","W sr-1 m-2","UC_NONE" +5,"","White light coronagraph radiance","W sr-1 m-2","UC_NONE" +6,"","Heliospheric radiance","W sr-1 m-2","UC_NONE" +7,"","Thematic mask","Numeric","UC_NONE" +8,"","Solar induced chlorophyll fluorescence","W m-2 sr-1 m-1","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv new file mode 100644 index 00000000..09642c26 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Pedersen conductivity","S m-1","UC_NONE" +1,"","Hall conductivity","S m-1","UC_NONE" +2,"","Parallel conductivity","S m-1","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv new file mode 100644 index 00000000..741b7694 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv @@ -0,0 +1,5 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,4,192,"DSWRF_SFC_0","Downward incident solar flux","W/m^2",UC_NONE +0,4,193,"USWRF_SFC_0","Upward short wave radiative flux","W/m^2",UC_NONE +0,5,192,"DLWRF_SFC_0","Downward Long Wave Radiative Flux","W/m^2",UC_NONE +0,5,193,"ULWRF_0","Outgoing Long Wave Radiative Flux","W/m^2",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv new file mode 100644 index 00000000..1c146001 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv @@ -0,0 +1,2 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,1,192,"HPC-Wx","HPC Code","-",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv new file mode 100644 index 00000000..ff92a003 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv @@ -0,0 +1,175 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +209,2,0,"NLDN_CG_001min_AvgDensity","CG Average Lightning Density 1-min - NLDN","flashes/km^2/min",UC_NONE +209,2,1,"NLDN_CG_005min_AvgDensity","CG Average Lightning Density 5-min - NLDN","flashes/km^2/min",UC_NONE +209,2,2,"NLDN_CG_015min_AvgDensity","CG Average Lightning Density 15-min - NLDN","flashes/km^2/min",UC_NONE +209,2,3,"NLDN_CG_030min_AvgDensity","CG Average Lightning Density 30-min - NLDN","flashes/km^2/min",UC_NONE +209,2,4,"LightningProbabilityNext30min","Lightning Probability 0-30 minutes - NLDN","%",UC_NONE +209,2,5,"LightningProbabilityNext30minGrid","Lightning Probability 0-30 minutes - NLDN","%",UC_NONE +209,2,6,"LightningProbabilityNext60minGrid","Lightning Probability 0-30 minutes - NLDN","%",UC_NONE +209,2,7,"LightningJumpGrid","Rapid lightning increases and decreases ","non-dim",UC_NONE +209,2,8,"LightningJumpGrid_Max_005min","Rapid lightning increases and decreases over 5-minutes ","non-dim",UC_NONE +209,3,0,"MergedAzShear0to2kmAGL","Azimuth Shear 0-2km AGL","0.001/s",UC_NONE +209,3,1,"MergedAzShear3to6kmAGL","Azimuth Shear 3-6km AGL","0.001/s",UC_NONE +209,3,2,"RotationTrack30min","Rotation Track 0-2km AGL 30-min","0.001/s",UC_NONE +209,3,3,"RotationTrack60min","Rotation Track 0-2km AGL 60-min","0.001/s",UC_NONE +209,3,4,"RotationTrack120min","Rotation Track 0-2km AGL 120-min","0.001/s",UC_NONE +209,3,5,"RotationTrack240min","Rotation Track 0-2km AGL 240-min","0.001/s",UC_NONE +209,3,6,"RotationTrack360min","Rotation Track 0-2km AGL 360-min","0.001/s",UC_NONE +209,3,7,"RotationTrack1440min","Rotation Track 0-2km AGL 1440-min","0.001/s",UC_NONE +209,3,14,"RotationTrackML30min","Rotation Track 3-6km AGL 30-min","0.001/s",UC_NONE +209,3,15,"RotationTrackML60min","Rotation Track 3-6km AGL 60-min","0.001/s",UC_NONE +209,3,16,"RotationTrackML120min","Rotation Track 3-6km AGL 120-min","0.001/s",UC_NONE +209,3,17,"RotationTrackML240min","Rotation Track 3-6km AGL 240-min","0.001/s",UC_NONE +209,3,18,"RotationTrackML360min","Rotation Track 3-6km AGL 360-min","0.001/s",UC_NONE +209,3,19,"RotationTrackML1440min","Rotation Track 3-6km AGL 1440-min","0.001/s",UC_NONE +209,3,26,"SHI","Severe Hail Index","index",UC_NONE +209,3,27,"POSH","Prob of Severe Hail","%",UC_NONE +209,3,28,"MESH","Maximum Estimated Size of Hail (MESH)","mm",UC_NONE +209,3,29,"MESHMax30min","MESH Hail Swath 30-min","mm",UC_NONE +209,3,30,"MESHMax60min","MESH Hail Swath 60-min","mm",UC_NONE +209,3,31,"MESHMax120min","MESH Hail Swath 120-min","mm",UC_NONE +209,3,32,"MESHMax240min","MESH Hail Swath 240-min","mm",UC_NONE +209,3,33,"MESHMax360min","MESH Hail Swath 360-min","mm",UC_NONE +209,3,34,"MESHMax1440min","MESH Hail Swath 1440-min","mm",UC_NONE +209,3,37,"VIL_Max_120min","VIL Swath 120-min","kg/m^2",UC_NONE +209,3,40,"VIL_Max_1440min","VIL Swath 1440-min","kg/m^2",UC_NONE +209,3,41,"VIL","Vertically Integrated Liquid","kg/m^2",UC_NONE +209,3,42,"VIL_Density","Vertically Integrated Liquid Density","g/m^3",UC_NONE +209,3,43,"VII","Vertically Integrated Ice","kg/m^2",UC_NONE +209,3,44,"EchoTop_18","Echo Top - 18 dBZ","km MSL",UC_NONE +209,3,45,"EchoTop_30","Echo Top - 30 dBZ","km MSL",UC_NONE +209,3,46,"EchoTop_50","Echo Top - 50 dBZ","km MSL",UC_NONE +209,3,47,"EchoTop_60","Echo Top - 60 dBZ","km MSL",UC_NONE +209,3,48,"H50AboveM20C","Thickness [50 dBZ top - (-20C)]","km",UC_NONE +209,3,49,"H50Above0C","Thickness [50 dBZ top - 0C]","km",UC_NONE +209,3,50,"H60AboveM20C","Thickness [60 dBZ top - (-20C)]","km",UC_NONE +209,3,51,"H60Above0C","Thickness [60 dBZ top - 0C]","km",UC_NONE +209,3,52,"Reflectivity_0C","Isothermal Reflectivity at 0C","dBZ",UC_NONE +209,3,53,"Reflectivity_-5C","Isothermal Reflectivity at -5C","dBZ",UC_NONE +209,3,54,"Reflectivity_-10C","Isothermal Reflectivity at -10C","dBZ",UC_NONE +209,3,55,"Reflectivity_-15C","Isothermal Reflectivity at -15C","dBZ",UC_NONE +209,3,56,"Reflectivity_-20C","Isothermal Reflectivity at -20C","dBZ",UC_NONE +209,3,57,"ReflectivityAtLowestAltitude","ReflectivityAtLowestAltitude","dBZ",UC_NONE +209,3,58,"MergedReflectivityAtLowestAltitude","Non Quality Controlled Reflectivity At Lowest Altitude","dBZ",UC_NONE +209,4,0,"IRband4","Infrared (E/W blend)","K",UC_NONE +209,4,1,"Visible","Visible (E/W blend)","non-dim",UC_NONE +209,4,2,"WaterVapor","Water Vapor (E/W blend)","K",UC_NONE +209,4,3,"CloudCover","Cloud Cover","K",UC_NONE +209,6,0,"PrecipFlag","Surface Precipitation Type","flag",UC_NONE +209,6,1,"PrecipRate","Radar Precipitation Rate","mm/hr",UC_NONE +209,6,2,"RadarOnly_QPE_01H","Radar precipitation accumulation 1-hour","mm",UC_NONE +209,6,3,"RadarOnly_QPE_03H","Radar precipitation accumulation 3-hour","mm",UC_NONE +209,6,4,"RadarOnly_QPE_06H","Radar precipitation accumulation 6-hour","mm",UC_NONE +209,6,5,"RadarOnly_QPE_12H","Radar precipitation accumulation 12-hour","mm",UC_NONE +209,6,6,"RadarOnly_QPE_24H","Radar precipitation accumulation 24-hour","mm",UC_NONE +209,6,7,"RadarOnly_QPE_48H","Radar precipitation accumulation 48-hour","mm",UC_NONE +209,6,8,"RadarOnly_QPE_72H","Radar precipitation accumulation 72-hour","mm",UC_NONE +209,6,9,"GaugeCorrQPE01H","Local Gauge Bias Corrected Radar Precipitation Accumulation 1-hour","mm",UC_NONE +209,6,10,"GaugeCorrQPE03H","Local Gauge Bias Corrected Radar Precipitation Accumulation 3-hour","mm",UC_NONE +209,6,11,"GaugeCorrQPE06H","Local Gauge Bias Corrected Radar Precipitation Accumulation 6-hour","mm",UC_NONE +209,6,12,"GaugeCorrQPE12H","Local Gauge Bias Corrected Radar Precipitation Accumulation 12-hour","mm",UC_NONE +209,6,13,"GaugeCorrQPE24H","Local Gauge Bias Corrected Radar Precipitation Accumulation 24-hour","mm",UC_NONE +209,6,14,"GaugeCorrQPE48H","Local Gauge Bias Corrected Radar Precipitation Accumulation 48-hour","mm",UC_NONE +209,6,15,"GaugeCorrQPE72H","Local Gauge Bias Corrected Radar Precipitation Accumulation 72-hour","mm",UC_NONE +209,6,16,"GaugeOnlyQPE01H","Gauge Only Precipitation Accumulation 1-hour","mm",UC_NONE +209,6,17,"GaugeOnlyQPE03H","Gauge Only Precipitation Accumulation 3-hour","mm",UC_NONE +209,6,18,"GaugeOnlyQPE06H","Gauge Only Precipitation Accumulation 6-hour","mm",UC_NONE +209,6,19,"GaugeOnlyQPE12H","Gauge Only Precipitation Accumulation 12-hour","mm",UC_NONE +209,6,20,"GaugeOnlyQPE24H","Gauge Only Precipitation Accumulation 24-hour","mm",UC_NONE +209,6,21,"GaugeOnlyQPE48H","Gauge Only Precipitation Accumulation 48-hour","mm",UC_NONE +209,6,22,"GaugeOnlyQPE72H","Gauge Only Precipitation Accumulation 72-hour","mm",UC_NONE +209,6,23,"MountainMapperQPE01H","Mountain Mapper Precipitation Accumulation 1-hour","mm",UC_NONE +209,6,24,"MountainMapperQPE03H","Mountain Mapper Precipitation Accumulation 3-hour","mm",UC_NONE +209,6,25,"MountainMapperQPE06H","Mountain Mapper Precipitation Accumulation 6-hour","mm",UC_NONE +209,6,26,"MountainMapperQPE12H","Mountain Mapper Precipitation Accumulation 12-hour","mm",UC_NONE +209,6,27,"MountainMapperQPE24H","Mountain Mapper Precipitation Accumulation 24-hour","mm",UC_NONE +209,6,28,"MountainMapperQPE48H","Mountain Mapper Precipitation Accumulation 48-hour","mm",UC_NONE +209,6,29,"MountainMapperQPE72H","Mountain Mapper Precipitation Accumulation 72-hour","mm",UC_NONE +209,6,30,"MultiSensor_QPE_01H_Pass1","Multi-sensor accumulation 1-hour (1-hour latency)","mm",UC_NONE +209,6,31,"MultiSensor_QPE_03H_Pass1","Multi-sensor accumulation 3-hour (1-hour latency)","mm",UC_NONE +209,6,32,"MultiSensor_QPE_06H_Pass1","Multi-sensor accumulation 6-hour (1-hour latency)","mm",UC_NONE +209,6,33,"MultiSensor_QPE_12H_Pass1","Multi-sensor accumulation 12-hour (1-hour latency)","mm",UC_NONE +209,6,34,"MultiSensor_QPE_24H_Pass1","Multi-sensor accumulation 24-hour (1-hour latency)","mm",UC_NONE +209,6,35,"MultiSensor_QPE_48H_Pass1","Multi-sensor accumulation 48-hour (1-hour latency)","mm",UC_NONE +209,6,36,"MultiSensor_QPE_72H_Pass1","Multi-sensor accumulation 72-hour (1-hour latency)","mm",UC_NONE +209,6,37,"MultiSensor_QPE_01H_Pass2","Multi-sensor accumulation 1-hour (2-hour latency)","mm",UC_NONE +209,6,38,"MultiSensor_QPE_03H_Pass2","Multi-sensor accumulation 3-hour (2-hour latency)","mm",UC_NONE +209,6,39,"MultiSensor_QPE_06H_Pass2","Multi-sensor accumulation 6-hour (2-hour latency)","mm",UC_NONE +209,6,40,"MultiSensor_QPE_12H_Pass2","Multi-sensor accumulation 12-hour (2-hour latency)","mm",UC_NONE +209,6,41,"MultiSensor_QPE_24H_Pass2","Multi-sensor accumulation 24-hour (2-hour latency)","mm",UC_NONE +209,6,42,"MultiSensor_QPE_48H_Pass2","Multi-sensor accumulation 48-hour (2-hour latency)","mm",UC_NONE +209,6,43,"MultiSensor_QPE_72H_Pass2","Multi-sensor accumulation 72-hour (2-hour latency)","mm",UC_NONE +209,6,44,"SyntheticPrecipRateID","Method IDs for blended single and dual-pol derived precip rates ","flag",UC_NONE +209,6,45,"RadarOnly_QPE_15M","Radar precipitation accumulation 15-minute","mm",UC_NONE +209,7,0,"Model_SurfaceTemp","Model Surface temperature","C",UC_NONE +209,7,1,"Model_WetBulbTemp","Model Surface wet bulb temperature","C",UC_NONE +209,7,2,"WarmRainProbability","Probability of warm rain","%",UC_NONE +209,7,3,"Model_0degC_Height","Model Freezing Level Height","m MSL",UC_NONE +209,7,4,"BrightBandTopHeight","Brightband Top Height","m AGL",UC_NONE +209,7,5,"BrightBandBottomHeight","Brightband Bottom Height","m AGL",UC_NONE +209,8,0,"RadarQualityIndex","Radar Quality Index","non-dim",UC_NONE +209,8,1,"GaugeInflIndex_01H_Pass1","Gauge Influence Index for 1-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,2,"GaugeInflIndex_03H_Pass1","Gauge Influence Index for 3-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,3,"GaugeInflIndex_06H_Pass1","Gauge Influence Index for 6-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,4,"GaugeInflIndex_12H_Pass1","Gauge Influence Index for 12-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,5,"GaugeInflIndex_24H_Pass1","Gauge Influence Index for 24-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,6,"GaugeInflIndex_48H_Pass1","Gauge Influence Index for 48-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,7,"GaugeInflIndex_72H_Pass1","Gauge Influence Index for 72-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,8,"SeamlessHSR","Seamless Hybrid Scan Reflectivity with VPR correction","dBZ",UC_NONE +209,8,9,"SeamlessHSRHeight","Height of Seamless Hybrid Scan Reflectivity","km AGL",UC_NONE +209,8,10,"RadarAccumulationQualityIndex_01H","Radar 1-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,11,"RadarAccumulationQualityIndex_03H","Radar 3-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,12,"RadarAccumulationQualityIndex_06H","Radar 6-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,13,"RadarAccumulationQualityIndex_12H","Radar 12-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,14,"RadarAccumulationQualityIndex_24H","Radar 24-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,15,"RadarAccumulationQualityIndex_48H","Radar 48-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,16,"RadarAccumulationQualityIndex_72H","Radar 72-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,17,"GaugeInflIndex_01H_Pass2","Gauge Influence Index for 1-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,18,"GaugeInflIndex_03H_Pass2","Gauge Influence Index for 3-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,19,"GaugeInflIndex_06H_Pass2","Gauge Influence Index for 6-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,20,"GaugeInflIndex_12H_Pass2","Gauge Influence Index for 12-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,21,"GaugeInflIndex_24H_Pass2","Gauge Influence Index for 24-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,22,"GaugeInflIndex_48H_Pass2","Gauge Influence Index for 48-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,23,"GaugeInflIndex_72H_Pass2","Gauge Influence Index for 72-hour QPE (2-hour latency)","non-dim",UC_NONE +209,9,0,"MergedReflectivityQC","3D Reflectivty Mosaic - 33 CAPPIS (500-19000m)","dBZ",UC_NONE +209,9,1,"CONUSPlusMergedReflectivityQC","All Radar 3D Reflectivity Mosaic - 33 CAPPIS (500-19000m)","dBZ",UC_NONE +209,9,3,"MergedRhoHV,5-min","33 levels (one file per level)","-99",UC_NONE +209,9,4,"MergedZdr,5-min","33 levels (one file per level)","-99",UC_NONE +209,10,0,"MergedReflectivityQCComposite","Composite Reflectivity Mosaic (optimal method)","dBZ",UC_NONE +209,10,1,"HeightCompositeReflectivity","Height of Composite Reflectivity Mosaic (optimal method)","m MSL",UC_NONE +209,10,2,"LowLevelCompositeReflectivity","Low-Level Composite Reflectivity Mosaic (0-4km)","dBZ",UC_NONE +209,10,3,"HeightLowLevelCompositeReflectivity","Height of Low-Level Composite Reflectivity Mosaic (0-4km)","m MSL",UC_NONE +209,10,4,"LayerCompositeReflectivity_Low","Layer Composite Reflectivity Mosaic 0-24kft (low altitude)","dBZ",UC_NONE +209,10,5,"LayerCompositeReflectivity_High","Layer Composite Reflectivity Mosaic 24-60 kft (highest altitude)","dBZ",UC_NONE +209,10,6,"LayerCompositeReflectivity_Super","Layer Composite Reflectivity Mosaic 33-60 kft (super high altitude)","dBZ",UC_NONE +209,10,7,"CREF_1HR_MAX","Composite Reflectivity Hourly Maximum","dBZ",UC_NONE +209,10,8,"ReflectivityMaxAboveM10C","Maximum Reflectivity at -10 deg C height and above","dBZ",UC_NONE +209,10,9,"LayerCompositeReflectivity_ANC","Layer Composite Reflectivity Mosaic (2-4.5km) (for ANC)","dBZ",UC_NONE +209,10,10,"BREF_1HR_MAX","Base Reflectivity Hourly Maximum","dBZ",UC_NONE +209,11,0,"MergedBaseReflectivityQC","Base Reflectivity Mosaic (optimal method)","dBZ",UC_NONE +209,11,1,"MergedReflectivityComposite","Raw Composite Reflectivity Mosaic (max ref)","dBZ",UC_NONE +209,11,2,"MergedReflectivityQComposite","Composite Reflectivity Mosaic (max ref)","dBZ",UC_NONE +209,11,3,"MergedBaseReflectivity","Raw Base Reflectivity Mosaic (optimal method)","dBZ",UC_NONE +209,12,0,"FLASH_CREST_MAXUNITSTREAMFLOW","FLASH QPE-CREST Unit Streamflow","m^3/s/km^2",UC_NONE +209,12,1,"FLASH_CREST_MAXSTREAMFLOW","FLASH QPE-CREST Streamflow","m^3/s",UC_NONE +209,12,2,"FLASH_CREST_MAXSOILSAT","FLASH QPE-CREST Soil Saturation","%",UC_NONE +209,12,4,"FLASH_SAC_MAXUNITSTREAMFLOW","FLASH QPE-SAC Unit Streamflow","m^3/s/km^2",UC_NONE +209,12,5,"FLASH_SAC_MAXSTREAMFLOW","FLASH QPE-SAC Streamflow","m^3/s",UC_NONE +209,12,6,"FLASH_SAC_MAXSOILSAT","FLASH QPE-SAC Soil Saturation","%",UC_NONE +209,12,14,"FLASH_QPE_ARI30M","FLASH QPE Average Recurrence Interval 30-min","years",UC_NONE +209,12,15,"FLASH_QPE_ARI01H","FLASH QPE Average Recurrence Interval 01H","years",UC_NONE +209,12,16,"FLASH_QPE_ARI03H","FLASH QPE Average Recurrence Interval 03H","years",UC_NONE +209,12,17,"FLASH_QPE_ARI06H","FLASH QPE Average Recurrence Interval 06H","years",UC_NONE +209,12,18,"FLASH_QPE_ARI12H","FLASH QPE Average Recurrence Interval 12H","years",UC_NONE +209,12,19,"FLASH_QPE_ARI24H","FLASH QPE Average Recurrence Interval 24H","years",UC_NONE +209,12,20,"FLASH_QPE_ARIMAX","FLASH QPE Average Recurrence Interval Maximum","years",UC_NONE +209,12,26,"FLASH_QPE_FFG01H","FLASH QPE-to-FFG Ratio 01H","non-dim",UC_NONE +209,12,27,"FLASH_QPE_FFG03H","FLASH QPE-to-FFG Ratio 03H","non-dim",UC_NONE +209,12,28,"FLASH_QPE_FFG06H","FLASH QPE-to-FFG Ratio 06H","non-dim",UC_NONE +209,12,29,"FLASH_QPE_FFGMAX","FLASH QPE-to-FFG Ratio Maximum","non-dim",UC_NONE +209,12,39,"FLASH_HP_MAXUNITSTREAMFLOW","FLASH QPE-Hydrophobic Unit Streamflow","m^3/s/km^2",UC_NONE +209,12,40,"FLASH_HP_MAXSTREAMFLOW","FLASH QPE-Hydrophobic Streamflow","m^3/s",UC_NONE +209,13,0,"ANC_ConvectiveLikelihood","Likelihood of convection over the next 01H","non-dim",UC_NONE +209,13,1,"ANC_FinalForecast","01H reflectivity forecast","dBZ",UC_NONE +209,14,0,"LVL3_HREET","Level III High Resolution Enhanced Echo Top mosaic","kft",UC_NONE +209,14,1,"LVL3_HighResVIL","Level III High Resouion VIL mosaic","kg/m^2",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv new file mode 100644 index 00000000..27a76aa2 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv @@ -0,0 +1,401 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,0,192,"SNOHF","Snow Phase Change Heat Flux","W/(m^2)",UC_NONE +0,0,193,"TTRAD","Temperature tendency by all radiation","K/s",UC_NONE +0,0,194,"REV","Relative Error Variance","-",UC_NONE +0,0,195,"LRGHR","Large Scale Condensate Heating rate","K/s",UC_NONE +0,0,196,"CNVHR","Deep Convective Heating rate","K/s",UC_NONE +0,0,197,"THFLX","Total Downward Heat Flux at Surface","W/(m^2)",UC_NONE +0,0,198,"TTDIA","Temperature Tendency By All Physics","K/s",UC_NONE +0,0,199,"TTPHY","Temperature Tendency By Non-radiation Physics","K/s",UC_NONE +0,0,200,"TSD1D","Standard Dev. of IR Temp. over 1x1 deg. area","K",UC_NONE +0,0,201,"SHAHR","Shallow Cnvective Heating rate","K/s",UC_NONE +0,0,202,"VDFHR","Vertical Diffusion Heating rate","K/s",UC_NONE +0,0,203,"THZ0","Potential temperature at top of viscus sublayer","K",UC_NONE +0,0,204,"TCHP","Tropical Cyclone Heat Potential","J/(m^2*K)",UC_NONE +0,1,192,"CRAIN","Categorical Rain","0=no; 1=yes",UC_NONE +0,1,193,"CFRZR","Categorical Freezing Rain","0=no; 1=yes",UC_NONE +0,1,194,"CICEP","Categorical Ice Pellets","0=no; 1=yes",UC_NONE +0,1,195,"CSNOW","Categorical Snow","0=no; 1=yes",UC_NONE +0,1,196,"CPRAT","Convective Precipitation Rate","kg/(m^2*s)",UC_NONE +0,1,197,"MCONV","Horizontal Moisture Divergence","kg/(kg*s)",UC_NONE +0,1,198,"MINRH","Minimum Relative Humidity","%",UC_NONE +0,1,199,"PEVAP","Potential Evaporation","kg/(m^2)",UC_NONE +0,1,200,"PEVPR","Potential Evaporation Rate","W/(m^2)",UC_NONE +0,1,201,"SNOWC","Snow Cover","%",UC_NONE +0,1,202,"FRAIN","Rain Fraction of Total Liquid Water","-",UC_NONE +0,1,203,"RIME","Rime Factor","-",UC_NONE +0,1,204,"TCOLR","Total Column Integrated Rain","kg/(m^2)",UC_NONE +0,1,205,"TCOLS","Total Column Integrated Snow","kg/(m^2)",UC_NONE +0,1,206,"TIPD","Total Icing Potential Diagnostic","-",UC_NONE +0,1,207,"NCIP","Number concentration for ice particles","-",UC_NONE +0,1,208,"SNOT","Snow temperature","K",UC_NONE +0,1,209,"TCLSW","Total column-integrated supercooled liquid water","kg/(m^2)",UC_NONE +0,1,210,"TCOLM","Total column-integrated melting ice","kg/(m^2)",UC_NONE +0,1,211,"EMNP","Evaporation - Precipitation","cm/day",UC_NONE +0,1,212,"SBSNO","Sublimination (evaporation from snow)","W/(m^2)",UC_NONE +0,1,213,"CNVMR","Deep Convective Moistening Rate","kg/(kg*s)",UC_NONE +0,1,214,"SHAMR","Shallow Convective Moistening Rate","kg/(kg*s)",UC_NONE +0,1,215,"VDFMR","Vertical Diffusion Moistening Rate","kg/(kg*s)",UC_NONE +0,1,216,"CONDP","Condensation Pressure of Parcali Lifted From Indicate Surface","Pa",UC_NONE +0,1,217,"LRGMR","Large scale moistening rate","kg/(kg/s)",UC_NONE +0,1,218,"QZ0","Specific humidity at top of viscous sublayer","kg/kg",UC_NONE +0,1,219,"QMAX","Maximum specific humidity at 2m","kg/kg",UC_NONE +0,1,220,"QMIN","Minimum specific humidity at 2m","kg/kg",UC_NONE +0,1,221,"ARAIN","Liquid precipitation (rainfall)","kg/(m^2)",UC_NONE +0,1,222,"SNOWT","Snow temperature, depth-avg","K",UC_NONE +0,1,223,"APCPN","Total precipitation (nearest grid point)","kg/(m^2)",UC_NONE +0,1,224,"ACPCPN","Convective precipitation (nearest grid point)","kg/(m^2)",UC_NONE +0,1,225,"FRZR","Freezing rain","kg/(m^2)",UC_NONE +0,1,226,"Wx","Weather String","-",UC_NONE +0,1,227,"FROZR","Frozen Rain","kg/(m^2)",UC_NONE +0,1,228,"FICEAC","Flat Ice Accumulation (FRAM)","kg/(m^2)",UC_NONE +0,1,229,"LICEAC","Line Ice Accumulation (FRAM)","kg/(m^2)",UC_NONE +0,1,230,"SLACC","Sleet Accumulation","kg/(m^2)",UC_NONE +0,1,231,"PPINDX","Precipitation Potential Index","%",UC_NONE +0,1,232,"PROBCIP","Probability Cloud Ice Present","%",UC_NONE +0,1,233,"SNOWLR","Snow Liquid ratio","kg/kg",UC_NONE +0,1,241,"TSNOW","Total Snow","kg/(m^2)",UC_NONE +0,1,242,"RHPW","Relative Humidity with Respect to Precipitable Water","%",UC_NONE +0,2,192,"VWSH","Vertical speed sheer","1/s",UC_NONE +0,2,193,"MFLX","Horizontal Momentum Flux","N/(m^2)",UC_NONE +0,2,194,"USTM","U-Component Storm Motion","m/s",UC_NONE +0,2,195,"VSTM","V-Component Storm Motion","m/s",UC_NONE +0,2,196,"CD","Drag Coefficient","-",UC_NONE +0,2,197,"FRICV","Frictional Velocity","m/s",UC_NONE +0,2,198,"LAUV","Latitude of U Wind Component of Velocity","deg",UC_NONE +0,2,199,"LOUV","Longitude of U Wind Component of Velocity","deg",UC_NONE +0,2,200,"LAVV","Latitude of V Wind Component of Velocity","deg",UC_NONE +0,2,201,"LOVV","Longitude of V Wind Component of Velocity","deg",UC_NONE +0,2,202,"LAPP","Latitude of Presure Point","deg",UC_NONE +0,2,203,"LOPP","Longitude of Presure Point","deg",UC_NONE +0,2,204,"VEDH","Vertical Eddy Diffusivity Heat exchange","m^2/s",UC_NONE +0,2,205,"COVMZ","Covariance between Meridional and Zonal Components of the wind","m^2/s^2",UC_NONE +0,2,206,"COVTZ","Covariance between Temperature and Zonal Components of the wind","K*m/s",UC_NONE +0,2,207,"COVTM","Covariance between Temperature and Meridional Components of the wind","K*m/s",UC_NONE +0,2,208,"VDFUA","Vertical Diffusion Zonal Acceleration","m/s^2",UC_NONE +0,2,209,"VDFVA","Vertical Diffusion Meridional Acceleration","m/s^2",UC_NONE +0,2,210,"GWDU","Gravity wave drag zonal acceleration","m/s^2",UC_NONE +0,2,211,"GWDV","Gravity wave drag meridional acceleration","m/s^2",UC_NONE +0,2,212,"CNVU","Convective zonal momentum mixing acceleration","m/s^2",UC_NONE +0,2,213,"CNVV","Convective meridional momentum mixing acceleration","m/s^2",UC_NONE +0,2,214,"WTEND","Tendency of vertical velocity","m/s^2",UC_NONE +0,2,215,"OMGALF","Omega (Dp/Dt) divide by density","K",UC_NONE +0,2,216,"CNGWDU","Convective Gravity wave drag zonal acceleration","m/s^2",UC_NONE +0,2,217,"CNGWDV","Convective Gravity wave drag meridional acceleration","m/s^2",UC_NONE +0,2,218,"LMV","Velocity point model surface","-",UC_NONE +0,2,219,"PVMWW","Potential vorticity (mass-weighted)","1/(s/m)",UC_NONE +0,2,220,"MAXUVV","Hourly Maximum of Downward Vertical Velocity in the lowest 400hPa","m/s",UC_NONE +0,2,221,"MAXDVV","Hourly Maximum of Downward Vertical Velocity","m/s",UC_NONE +0,2,222,"MAXUW","U Component of Hourly Maximum 10m Wind Speed","m/s",UC_NONE +0,2,223,"MAXVW","V Component of Hourly Maximum 10m Wind Speed","m/s",UC_NONE +0,2,224,"VRATE","Ventilation Rate","m^2/s",UC_NONE +0,2,225,"TRWSPD","Transport Wind Speed","m/s",UC_NONE +0,2,226,"TRWDIR","Transport Wind Direction","deg",UC_NONE +0,2,227,"TOA10","Earliest Reasonable Arrival Time (10% exceedance)","s",UC_NONE +0,2,228,"TOA50","Most Likely Arrival Time (50% exceedance)","s",UC_NONE +0,2,229,"TOD50","Most Likely Departure Time (50% exceedance)","s",UC_NONE +0,2,230,"TOD90","Latest Reasonable Departure Time (90% exceedance)","s",UC_NONE +0,3,192,"MSLET","MSLP (Eta model reduction)","Pa",UC_NONE +0,3,193,"5WAVH","5-Wave Geopotential Height","gpm",UC_NONE +0,3,194,"U-GWD","Zonal Flux of Gravity Wave Stress","N/(m^2)",UC_NONE +0,3,195,"V-GWD","Meridional Flux of Gravity Wave Stress","N/(m^2)",UC_NONE +0,3,196,"HPBL","Planetary Boundary Layer Height","m",UC_NONE +0,3,197,"5WAVA","5-Wave Geopotential Height Anomaly","gpm",UC_NONE +0,3,198,"MSLMA","MSLP (MAPS System Reduction)","Pa",UC_NONE +0,3,199,"TSLSA","3-hr pressure tendency (Std. Atmos. Reduction)","Pa/s",UC_NONE +0,3,200,"PLPL","Pressure of level from which parcel was lifted","Pa",UC_NONE +0,3,201,"LPSX","X-gradiant of Log Pressure","1/m",UC_NONE +0,3,202,"LPSY","Y-gradiant of Log Pressure","1/m",UC_NONE +0,3,203,"HGTX","X-gradiant of Height","1/m",UC_NONE +0,3,204,"HGTY","Y-gradiant of Height","1/m",UC_NONE +0,3,205,"LAYTH","Layer Thickness","m",UC_NONE +0,3,206,"NLGSP","Natural Log of Surface Pressure","ln(kPa)",UC_NONE +0,3,207,"CNVUMF","Convective updraft mass flux","kg/m^2/s",UC_NONE +0,3,208,"CNVDMF","Convective downdraft mass flux","kg/m^2/s",UC_NONE +0,3,209,"CNVDEMF","Convective detrainment mass flux","kg/m^2/s",UC_NONE +0,3,210,"LMH","Mass point model surface","-",UC_NONE +0,3,211,"HGTN","Geopotential height (nearest grid point)","gpm",UC_NONE +0,3,212,"PRESN","Pressure (nearest grid point)","Pa",UC_NONE +0,3,213,"ORCONV","Orographic Convexity","",UC_NONE +0,3,214,"ORASW","Orographic Asymmetry, W Component","",UC_NONE +0,3,215,"ORASS","Orographic Asymmetry, S Component","",UC_NONE +0,3,216,"ORASSW","Orographic Asymmetry, SW Component","",UC_NONE +0,3,217,"ORASNW","Orographic Asymmetry, NW Component","",UC_NONE +0,3,218,"ORLSW","Orographic Length Scale, W Component","",UC_NONE +0,3,219,"ORLSS","Orographic Length Scale, S Component","",UC_NONE +0,3,220,"ORLSSW","Orographic Length Scale, SW Component","",UC_NONE +0,3,221,"ORLSNW","Orographic Length Scale, NW Component","",UC_NONE +0,4,192,"DSWRF","Downward Short-Wave Rad. Flux","W/(m^2)",UC_NONE +0,4,193,"USWRF","Upward Short-Wave Rad. Flux","W/(m^2)",UC_NONE +0,4,194,"DUVB","UV-B downward solar flux","W/(m^2)",UC_NONE +0,4,195,"CDUVB","Clear sky UV-B downward solar flux","W/(m^2)",UC_NONE +0,4,196,"CSDSF","Clear sky Downward Solar Flux","W/(m^2)",UC_NONE +0,4,197,"SWHR","Solar Radiative Heating Rate","K/s",UC_NONE +0,4,198,"CSUSF","Clear Sky Upward Solar Flux","W/(m^2)",UC_NONE +0,4,199,"CFNSF","Cloud Forcing Net Solar Flux","W/(m^2)",UC_NONE +0,4,200,"VBDSF","Visible Beam Downward Solar Flux","W/(m^2)",UC_NONE +0,4,201,"VDDSF","Visible Diffuse Downward Solar Flux","W/(m^2)",UC_NONE +0,4,202,"NBDSF","Near IR Beam Downward Solar Flux","W/(m^2)",UC_NONE +0,4,203,"NDDSF","Near IR Diffuse Downward Solar Flux","W/(m^2)",UC_NONE +0,4,204,"DTRF","Downward Total radiation Flux","W/(m^2)",UC_NONE +0,4,205,"UTRF","Upward Total radiation Flux","W/(m^2)",UC_NONE +0,5,192,"DLWRF","Downward Long-Wave Rad. Flux","W/(m^2)",UC_NONE +0,5,193,"ULWRF","Upward Long-Wave Rad. Flux","W/(m^2)",UC_NONE +0,5,194,"LWHR","Long-Wave Radiative Heating Rate","K/s",UC_NONE +0,5,195,"CSULF","Clear Sky Upward Long Wave Flux","W/(m^2)",UC_NONE +0,5,196,"CSDLF","Clear Sky Downward Long Wave Flux","W/(m^2)",UC_NONE +0,5,197,"CFNLF","Cloud Forcing Net Long Wave Flux","W/(m^2)",UC_NONE +0,6,192,"CDLYR","Non-Convective Cloud Cover","%",UC_NONE +0,6,193,"CWORK","Cloud Work Function","J/kg",UC_NONE +0,6,194,"CUEFI","Convective Cloud Efficiency","-",UC_NONE +0,6,195,"TCOND","Total Condensate","kg/kg",UC_NONE +0,6,196,"TCOLW","Total Column-Integrated Cloud Water","kg/(m^2)",UC_NONE +0,6,197,"TCOLI","Total Column-Integrated Cloud Ice","kg/(m^2)",UC_NONE +0,6,198,"TCOLC","Total Column-Integrated Condensate","kg/(m^2)",UC_NONE +0,6,199,"FICE","Ice fraction of total condensate","-",UC_NONE +0,6,200,"MFLUX","Convective Cloud Mass Flux","Pa/s",UC_NONE +0,6,201,"SUNSD","SunShine duration","s",UC_NONE +0,7,192,"LFTX","Surface Lifted Index","K",UC_NONE +0,7,193,"4LFTX","Best (4 layer) Lifted Index","K",UC_NONE +0,7,194,"RI","Richardson Number","-",UC_NONE +0,7,195,"CWDI","Convective Weather Detection Index","-",UC_NONE +0,7,196,"UVI","Ultra Violet Index","W/(m^2)",UC_UVIndex +0,7,197,"UPHL","Updraft Helicity","m^2/s^2",UC_NONE +0,7,198,"LAI","Leaf area index","-",UC_NONE +0,7,199,"MXUPHL","Hourly Maximum of Updraft Helicity over Layer 2km to 5 km AGL","m^2/s^2",UC_NONE +0,7,200,"MNUPHL","Hourly Minimum of Updraft Helicity","m^2/s^2",UC_NONE +0,7,201,"BNEGLAY","Bourgoiun Negative Energy Layer (surface to freezing level)","J/kg",UC_NONE +0,7,202,"BPOSELAY","Bourgoiun Positive Energy Layer (2k ft AGL to 400 hPa)","J/kg",UC_NONE +0,13,192,"PMTC","Particulate matter (coarse)","10^-6g/m^3",UC_NONE +0,13,193,"PMTF","Particulate matter (fine)","10^-6g/m^3",UC_NONE +0,13,194,"LPMTF","Particulate matter (fine)","log10(10^-6g/m^3)",UC_LOG10 +0,13,195,"LIPMF","Integrated column particulate matter (fine)","log10(10^-6g/m^3)",UC_LOG10 +0,14,192,"O3MR","Ozone Mixing Ratio","kg/kg",UC_NONE +0,14,193,"OZCON","Ozone Concentration","PPB",UC_NONE +0,14,194,"OZCAT","Categorical Ozone Concentration","-",UC_NONE +0,14,195,"VDFOZ","Ozone Vertical Diffusion","kg/kg/s",UC_NONE +0,14,196,"POZ","Ozone Production","kg/kg/s",UC_NONE +0,14,197,"TOZ","Ozone Tendency","kg/kg/s",UC_NONE +0,14,198,"POZT","Ozone Production from Temperature Term","kg/kg/s",UC_NONE +0,14,199,"POZO","Ozone Production from Column Ozone Term","kg/kg/s",UC_NONE +0,14,200,"OZMAX1","Ozone Daily Max from 1-hour Average","ppbV",UC_NONE +0,14,201,"OZMAX8","Ozone Daily Max from 8-hour Average","ppbV",UC_NONE +0,14,202,"PDMAX1","PM 2.5 Daily Max from 1-hour Average","(10^-6g/(m^3)",UC_NONE +0,14,203,"PDMAX24","PM 2.5 Daily Max from 24-hour Average","(10^-6g/(m^3)",UC_NONE +0,16,192,"REFZR","Derived radar reflectivity backscatter from rain","mm^6/m^3",UC_NONE +0,16,193,"REFZI","Derived radar reflectivity backscatter from ice","mm^6/m^3",UC_NONE +0,16,194,"REFZC","Derived radar reflectivity backscatter from parameterized convection","mm^6/m^3",UC_NONE +0,16,195,"REFD","Derived radar reflectivity","dB",UC_NONE +0,16,196,"REFC","Maximum / Composite radar reflectivity","dB",UC_NONE +0,16,197,"RETOP","Radar Echo Top (18.3 DBZ)","m",UC_NONE +0,16,198,"MAXREF","Hourly Maximum of Simulated Reflectivity at 1 km AGL","dB",UC_NONE +0,17,192,"LTNG","Lightning","-",UC_NONE +0,19,192,"MXSALB","Maximum Snow Albedo","%",UC_NONE +0,19,193,"SNFALB","Snow-Free Albedo","%",UC_NONE +0,19,194,"SRCONO","Slight risk convective outlook","categorical",UC_NONE +0,19,195,"MRCONO","Moderate risk convective outlook","categorical",UC_NONE +0,19,196,"HRCONO","High risk convective outlook","categorical",UC_NONE +0,19,197,"TORPROB","Tornado probability","%",UC_NONE +0,19,198,"HAILPROB","Hail probability","%",UC_NONE +0,19,199,"WINDPROB","Wind probability","%",UC_NONE +0,19,200,"STORPROB","Significant Tornado probability","%",UC_NONE +0,19,201,"SHAILPRO","Significant Hail probability","%",UC_NONE +0,19,202,"SWINDPRO","Significant Wind probability","%",UC_NONE +0,19,203,"TSTMC","Categorical Thunderstorm","0=no; 1=yes",UC_NONE +0,19,204,"MIXLY","Number of mixed layers next to surface","integer",UC_NONE +0,19,205,"FLGHT","Flight Category","-",UC_NONE +0,19,206,"CICEL","Confidence Ceiling","-",UC_NONE +0,19,207,"CIVIS","Confidence Visibility","-",UC_NONE +0,19,208,"CIFLT","Confidence Flight Category","-",UC_NONE +0,19,209,"LAVNI","Low Level aviation interest","-",UC_NONE +0,19,210,"HAVNI","High Level aviation interest","-",UC_NONE +0,19,211,"SBSALB","Visible; Black Sky Albedo","%",UC_NONE +0,19,212,"SWSALB","Visible; White Sky Albedo","%",UC_NONE +0,19,213,"NBSALB","Near IR; Black Sky Albedo","%",UC_NONE +0,19,214,"NWSALB","Near IR; White Sky Albedo","%",UC_NONE +0,19,215,"PRSVR","Total Probability of Severe Thunderstorms (Days 2,3)","%",UC_NONE +0,19,216,"PRSIGSVR","Total Probability of Extreme Severe Thunderstorms (Days 2,3)","%",UC_NONE +0,19,217,"SIPD","Supercooled Large Droplet Icing","0=None; 1=Light; 2=Moderate; 3=Severe; 4=Trace; 5=Heavy; 255=missing",UC_NONE +0,19,218,"EPSR","Radiative emissivity","",UC_NONE +0,19,219,"TPFI","Turbulence potential forecast index","-",UC_NONE +0,19,220,"SVRTS","Categorical Severe Thunderstorm","0=No; 1=Yes; 2-3=Reserved; 4=Low; 5=Reserved; 6=Medium; 7=Reserved; 8=High; 255=missing",UC_NONE +0,19,221,"PROCON","Probability of Convection","%",UC_NONE +0,19,222,"CONVP","Convection Potential","0=No; 1=Yes; 2-3=Reserved; 4=Low; 5=Reserved; 6=Medium; 7=Reserved; 8=High; 255=missing",UC_NONE +0,19,223,"","Reserved","-",UC_NONE +0,19,224,"","Reserved","-",UC_NONE +0,19,225,"","Reserved","-",UC_NONE +0,19,226,"","Reserved","-",UC_NONE +0,19,227,"","Reserved","-",UC_NONE +0,19,228,"","Reserved","-",UC_NONE +0,19,229,"","Reserved","-",UC_NONE +0,19,230,"","Reserved","-",UC_NONE +0,19,231,"","Reserved","-",UC_NONE +0,19,232,"VAFTD","Volcanic Ash Forecast Transport and Dispersion","log10(kg/m^3)",UC_NONE +0,19,233,"ICPRB","Icing probability","-",UC_NONE +0,19,234,"ICSEV","Icing severity","-",UC_NONE +0,19,235,"JFWPRB","Joint Fire Weather Probability","%",UC_NONE +0,19,236,"SNOWLVL","Snow Level","m",UC_NONE +0,19,237,"DRYTPROB","Dry Thunderstorm Probability","%",UC_NONE +0,191,192,"NLAT","Latitude (-90 to 90)","deg",UC_NONE +0,191,193,"ELON","East Longitude (0 to 360)","deg",UC_NONE +0,191,194,"TSEC","Seconds prior to initial reference time","s",UC_NONE +0,191,195,"MLYNO","Model Layer number (From bottom up)","",UC_NONE +0,191,196,"NLATN","Latitude (nearest neighbor) (-90 to 90)","deg",UC_NONE +0,191,197,"ELONN","East longitude (nearest neighbor) (0 to 360)","deg",UC_NONE +0,192,1,"COVZM","Covariance between zonal and meridonial components of the wind","m^2/s^2",UC_NONE +0,192,2,"COVTZ","Covariance between zonal component of the wind and temperature","K*m/s",UC_NONE +0,192,3,"COVTM","Covariance between meridonial component of the wind and temperature","K*m/s",UC_NONE +0,192,4,"COVTW","Covariance between temperature and vertical component of the wind","K*m/s",UC_NONE +0,192,5,"COVZZ","Covariance between zonal and zonal components of the wind","m^2/s^2",UC_NONE +0,192,6,"COVMM","Covariance between meridonial and meridonial components of the wind","m^2/s^2",UC_NONE +0,192,7,"COVQZ","Covariance between specific humidity and zonal components of the wind","kg/kg*m/s",UC_NONE +0,192,8,"COVQM","Covariance between specific humidity and meridonial components of the wind","kg/kg*m/s",UC_NONE +0,192,9,"COVTVV","Covariance between temperature and vertical components of the wind","K*Pa/s",UC_NONE +0,192,10,"COVQVV","Covariance between specific humidity and vertical components of the wind","kg/kg*Pa/s",UC_NONE +0,192,11,"COVPSPS","Covariance between surface pressure and surface pressure","Pa*Pa",UC_NONE +0,192,12,"COVQQ","Covariance between specific humidity and specific humidity","kg/kg*kg/kg",UC_NONE +0,192,13,"COVVVVV","Covariance between vertical and vertical components of the wind","Pa^2/s^2",UC_NONE +0,192,14,"COVTT","Covariance between temperature and temperature","K*K",UC_NONE +1,0,192,"BGRUN","Baseflow-Groundwater Runoff","kg/(m^2)",UC_NONE +1,0,193,"SSRUN","Storm Surface Runoff","kg/(m^2)",UC_NONE +1,1,192,"CPOZP","Probability of Freezing Precipitation","%",UC_NONE +1,1,193,"CPOFP","Probability of Frozen Precipitation","%",UC_NONE +1,1,194,"PPFFG","Probability of precipitation exceeding flash flood guidance values","%",UC_NONE +1,1,195,"CWR","Probability of Wetting Rain; exceeding in 0.1 inch in a given time period","%",UC_NONE +2,0,192,"SOILW","Volumetric Soil Moisture Content","Fraction",UC_NONE +2,0,193,"GFLUX","Ground Heat Flux","W/(m^2)",UC_NONE +2,0,194,"MSTAV","Moisture Availability","%",UC_NONE +2,0,195,"SFEXC","Exchange Coefficient","(kg/(m^3))(m/s)",UC_NONE +2,0,196,"CNWAT","Plant Canopy Surface Water","kg/(m^2)",UC_NONE +2,0,197,"BMIXL","Blackadar's Mixing Length Scale","m",UC_NONE +2,0,198,"VGTYP","Vegetation Type","0..13",UC_NONE +2,0,199,"CCOND","Canopy Conductance","m/s",UC_NONE +2,0,200,"RSMIN","Minimal Stomatal Resistance","s/m",UC_NONE +2,0,201,"WILT","Wilting Point","Fraction",UC_NONE +2,0,202,"RCS","Solar parameter in canopy conductance","Fraction",UC_NONE +2,0,203,"RCT","Temperature parameter in canopy conductance","Fraction",UC_NONE +2,0,204,"RCQ","Humidity parameter in canopy conductance","Fraction",UC_NONE +2,0,205,"RCSOL","Soil moisture parameter in canopy conductance","Fraction",UC_NONE +2,0,206,"RDRIP","Rate of water dropping from canopy to ground","unknown",UC_NONE +2,0,207,"ICWAT","Ice-free water surface","%",UC_NONE +2,0,208,"AKHS","Surface exchange coefficients for T and Q divided by delta z","m/s",UC_NONE +2,0,209,"AKMS","Surface exchange coefficients for U and V divided by delta z","m/s",UC_NONE +2,0,210,"VEGT","Vegetation canopy temperature","K",UC_NONE +2,0,211,"SSTOR","Surface water storage","K g/m^2",UC_NONE +2,0,212,"LSOIL","Liquid soil moisture content (non-frozen)","K g/m^2",UC_NONE +2,0,213,"EWATR","Open water evaporation (standing water)","W/m^2",UC_NONE +2,0,214,"GWREC","Groundwater recharge","kg/m^2",UC_NONE +2,0,215,"QREC","Flood plain recharge","kg/m^2",UC_NONE +2,0,216,"SFCRH","Roughness length for heat","m",UC_NONE +2,0,217,"NDVI","Normalized difference vegetation index","-",UC_NONE +2,0,218,"LANDN","Land-sea coverage (nearest neighbor)","0=sea; 1=land",UC_NONE +2,0,219,"AMIXL","Asymptotic mixing length scale","m",UC_NONE +2,0,220,"WVINC","Water vapor added by precip assimilation","kg/m^2",UC_NONE +2,0,221,"WCINC","Water condensate added by precip assimilation","kg/m^2",UC_NONE +2,0,222,"WVCONV","Water vapor flux convergence (vertical int)","kg/m^2",UC_NONE +2,0,223,"WCCONV","Water condensate flux convergence (vertical int)","kg/m^2",UC_NONE +2,0,224,"WVUFLX","Water vapor zonal flux (vertical int)","kg/m^2",UC_NONE +2,0,225,"WVVFLX","Water vapor meridional flux (vertical int)","kg/m^2",UC_NONE +2,0,226,"WCUFLX","Water condensate zonal flux (vertical int)","kg/m^2",UC_NONE +2,0,227,"WCVFLX","Water condensate meridional flux (vertical int)","kg/m^2",UC_NONE +2,0,228,"ACOND","Aerodynamic conductance","m/s",UC_NONE +2,0,229,"EVCW","Canopy water evaporation","W/(m^2)",UC_NONE +2,0,230,"TRANS","Transpiration","W/(m^2)",UC_NONE +2,1,192,"CANL","Cold Advisory for Newborn Livestock","0=none; 2=slight; 4=mild; 6=moderate; 8=severe; 10=extreme",UC_NONE +2,3,192,"SOILL","Liquid Volumetric Soil Moisture (non Frozen)","Proportion",UC_NONE +2,3,193,"RLYRS","Number of Soil Layers in Root Zone","-",UC_NONE +2,3,194,"SLTYP","Surface Slope Type","Index",UC_NONE +2,3,195,"SMREF","Transpiration Stress-onset (soil moisture)","Proportion",UC_NONE +2,3,196,"SMDRY","Direct Evaporation Cease (soil moisture)","Proportion",UC_NONE +2,3,197,"POROS","Soil Porosity","Proportion",UC_NONE +2,3,198,"EVBS","Direct evaporation from bare soil","W/m^2",UC_NONE +2,3,199,"LSPA","Land Surface Precipitation Accumulation","kg/m^2",UC_NONE +2,3,200,"BARET","Bare soil surface skin temperature","K",UC_NONE +2,3,201,"AVSFT","Average surface skin temperature","K",UC_NONE +2,3,202,"RADT","Effective radiative skin temperature","K",UC_NONE +2,3,203,"FLDCP","Field Capacity","fraction",UC_NONE +3,1,192,"USCT","Scatterometer Estimated U Wind","m/s",UC_NONE +3,1,193,"VSCT","Scatterometer Estimated V Wind","m/s",UC_NONE +3,1,194,"SWQI","Scatterometer Wind Quality","",UC_NONE +3,192,0,"SBT122","Simulated Brightness Temperature for GOES 12, Channel 2","K",UC_NONE +3,192,1,"SBT123","Simulated Brightness Temperature for GOES 12, Channel 3","K",UC_NONE +3,192,2,"SBT124","Simulated Brightness Temperature for GOES 12, Channel 4","K",UC_NONE +3,192,3,"SBT125","Simulated Brightness Temperature for GOES 12, Channel 5","K",UC_NONE +3,192,4,"SBC123","Simulated Brightness Counts for GOES 12, Channel 3","numeric",UC_NONE +3,192,5,"SBC124","Simulated Brightness Counts for GOES 12, Channel 4","numeric",UC_NONE +3,192,6,"SBT112","Simulated Brightness Temperature for GOES 11, Channel 2","K",UC_NONE +3,192,7,"SBT113","Simulated Brightness Temperature for GOES 11, Channel 3","K",UC_NONE +3,192,8,"SBT114","Simulated Brightness Temperature for GOES 11, Channel 4","K",UC_NONE +3,192,9,"SBT115","Simulated Brightness Temperature for GOES 11, Channel 5","K",UC_NONE +3,192,10,"AMSRE9","Simulated Brightness Temperature for AMSRE on Aqua, Channel 9","K",UC_NONE +3,192,11,"AMSRE10","Simulated Brightness Temperature for AMSRE on Aqua, Channel 10","K",UC_NONE +3,192,12,"AMSRE11","Simulated Brightness Temperature for AMSRE on Aqua, Channel 11","K",UC_NONE +3,192,13,"AMSRE12","Simulated Brightness Temperature for AMSRE on Aqua, Channel 12","K",UC_NONE +3,192,14,"SRFA161","Simulated Reflectance Factor for ABI GOES-16, Band-1","",UC_NONE +3,192,15,"SRFA162","Simulated Reflectance Factor for ABI GOES-16, Band-2","",UC_NONE +3,192,16,"SRFA163","Simulated Reflectance Factor for ABI GOES-16, Band-3","",UC_NONE +3,192,17,"SRFA164","Simulated Reflectance Factor for ABI GOES-16, Band-4","",UC_NONE +3,192,18,"SRFA165","Simulated Reflectance Factor for ABI GOES-16, Band-5","",UC_NONE +3,192,19,"SRFA166","Simulated Reflectance Factor for ABI GOES-16, Band-6","",UC_NONE +3,192,20,"SBTA167","Simulated Brightness Temperature for ABI GOES-16, Band-7","K",UC_NONE +3,192,21,"SBTA168","Simulated Brightness Temperature for ABI GOES-16, Band-8","K",UC_NONE +3,192,22,"SBTA169","Simulated Brightness Temperature for ABI GOES-16, Band-9","K",UC_NONE +3,192,23,"SBTA1610","Simulated Brightness Temperature for ABI GOES-16, Band-10","K",UC_NONE +3,192,24,"SBTA1611","Simulated Brightness Temperature for ABI GOES-16, Band-11","K",UC_NONE +3,192,25,"SBTA1612","Simulated Brightness Temperature for ABI GOES-16, Band-12","K",UC_NONE +3,192,26,"SBTA1613","Simulated Brightness Temperature for ABI GOES-16, Band-13","K",UC_NONE +3,192,27,"SBTA1614","Simulated Brightness Temperature for ABI GOES-16, Band-14","K",UC_NONE +3,192,28,"SBTA1615","Simulated Brightness Temperature for ABI GOES-16, Band-15","K",UC_NONE +3,192,29,"SBTA1616","Simulated Brightness Temperature for ABI GOES-16, Band-16","K",UC_NONE +3,192,30,"SRFA171","Simulated Reflectance Factor for ABI GOES-17, Band-1","",UC_NONE +3,192,31,"SRFA172","Simulated Reflectance Factor for ABI GOES-17, Band-2","",UC_NONE +3,192,32,"SRFA173","Simulated Reflectance Factor for ABI GOES-17, Band-3","",UC_NONE +3,192,33,"SRFA174","Simulated Reflectance Factor for ABI GOES-17, Band-4","",UC_NONE +3,192,34,"SRFA175","Simulated Reflectance Factor for ABI GOES-17, Band-5","",UC_NONE +3,192,35,"SRFA176","Simulated Reflectance Factor for ABI GOES-17, Band-6","",UC_NONE +3,192,36,"SBTA177","Simulated Brightness Temperature for ABI GOES-17, Band-7","K",UC_NONE +3,192,37,"SBTA178","Simulated Brightness Temperature for ABI GOES-17, Band-8","K",UC_NONE +3,192,38,"SBTA179","Simulated Brightness Temperature for ABI GOES-17, Band-9","K",UC_NONE +3,192,39,"SBTA1710","Simulated Brightness Temperature for ABI GOES-17, Band-10","K",UC_NONE +3,192,40,"SBTA1711","Simulated Brightness Temperature for ABI GOES-17, Band-11","K",UC_NONE +3,192,41,"SBTA1712","Simulated Brightness Temperature for ABI GOES-17, Band-12","K",UC_NONE +3,192,42,"SBTA1713","Simulated Brightness Temperature for ABI GOES-17, Band-13","K",UC_NONE +3,192,43,"SBTA1714","Simulated Brightness Temperature for ABI GOES-17, Band-14","K",UC_NONE +3,192,44,"SBTA1715","Simulated Brightness Temperature for ABI GOES-17, Band-15","K",UC_NONE +3,192,45,"SBTA1716","Simulated Brightness Temperature for ABI GOES-17, Band-16","K",UC_NONE +10,0,192,"WSTP","Wave Steepness","0",UC_NONE +10,0,193,"WLENG","Wave Length","0",UC_NONE +10,1,192,"OMLU","Ocean Mixed Layer U Velocity","m/s",UC_NONE +10,1,193,"OMLV","Ocean Mixed Layer V Velocity","m/s",UC_NONE +10,1,194,"UBARO","Barotropic U Velocity","m/s",UC_NONE +10,1,195,"VBARO","Barotropic V Velocity","m/s",UC_NONE +10,3,192,"SURGE","Hurricane Storm Surge","m",UC_M2Feet +10,3,193,"ETSRG","Extra Tropical Storm Surge","m",UC_M2Feet +10,3,194,"ELEV","Ocean Surface Elevation Relative to Geoid","m",UC_NONE +10,3,195,"SSHG","Sea Surface Height Relative to Geoid","m",UC_NONE +10,3,196,"P2OMLT","Ocean Mixed Layer Potential Density (Reference 2000m)","kg/(m^3)",UC_NONE +10,3,197,"AOHFLX","Net Air-Ocean Heat Flux","W/(m^2)",UC_NONE +10,3,198,"ASHFL","Assimilative Heat Flux","W/(m^2)",UC_NONE +10,3,199,"SSTT","Surface Temperature Trend","degree/day",UC_NONE +10,3,200,"SSST","Surface Salinity Trend","psu/day",UC_NONE +10,3,201,"KENG","Kinetic Energy","J/kg",UC_NONE +10,3,202,"SLTFL","Salt Flux","kg/(m^2*s)",UC_NONE +10,3,203,"LCH","Heat Exchange Coefficient","",UC_NONE +10,3,242,"TCSRG20","20% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,243,"TCSRG30","30% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,244,"TCSRG40","40% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,245,"TCSRG50","50% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,246,"TCSRG60","60% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,247,"TCSRG70","70% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,248,"TCSRG80","80% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,249,"TCSRG90","90% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,250,"ETCWL","Extra Tropical Storm Surge Combined Surge and Tide","m",UC_M2Feet +10,3,251,"TIDE","Tide","m",UC_M2Feet +10,3,252,"EROSNP","Erosion Occurrence Probability","%",UC_NONE +10,3,253,"OWASHP","Overwash Occurrence Probability","%",UC_NONE +10,4,192,"WTMPC","3-D Temperature","deg C",UC_NONE +10,4,193,"SALIN","3-D Salinity","",UC_NONE +10,4,194,"BKENG","Barotropic Kinetic Energy","J/kg",UC_NONE +10,4,195,"DBSS","Geometric Depth Below Sea Surface","m",UC_NONE +10,4,196,"INTFD","Interface Depths","m",UC_NONE +10,4,197,"OHC","Ocean Heat Content","J/m^2",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv new file mode 100644 index 00000000..f59b2d0c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv @@ -0,0 +1,38 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,0,193,"ApparentT","Apparent Temperature","K",UC_K2F +0,0,205,"WBGT","Wet Bulb Globe Temperature","K",UC_K2F +0,1,192,"Wx","Weather string","-",UC_NONE +0,1,193,"PPI","Precipitation Potential Index","%",UC_NONE +0,1,227,"IceAccum","Ice Accumulation","kg/m^2",UC_InchWater +0,10,8,"PoP12","Prob of 0.01 In. of Precip","%",UC_NONE +0,13,194,"smokes","Surface level smoke from fires","log10(10^-6g/m^3)",UC_LOG10 +0,13,195,"smokec","Average vertical column smoke from fires","log10(10^-6g/m^3)",UC_LOG10 +0,14,192,"O3MR","Ozone Mixing Ratio","kg/kg",UC_NONE +0,14,193,"OZCON","Ozone Concentration","PPB",UC_NONE +0,14,200,"OZMAX1","Ozone Daily Max from 1-hour Average","ppbV",UC_NONE +0,14,201,"OZMAX8","Ozone Daily Max from 8-hour Average","ppbV",UC_NONE +0,19,194,"ConvOutlook","Convective Hazard Outlook","0=none; 2=tstm; 4=slight; 6=moderate; 8=high",UC_NONE +0,19,197,"TornadoProb","Tornado Probability","%",UC_NONE +0,19,198,"HailProb","Hail Probability","%",UC_NONE +0,19,199,"WindProb","Damaging Thunderstorm Wind Probability","%",UC_NONE +0,19,200,"XtrmTornProb","Extreme Tornado Probability","%",UC_NONE +0,19,201,"XtrmHailProb","Extreme Hail Probability","%",UC_NONE +0,19,202,"XtrmWindProb","Extreme Thunderstorm Wind Probability","%",UC_NONE +0,19,215,"TotalSvrProb","Total Probability of Severe Thunderstorms","%",UC_NONE +0,19,216,"TotalXtrmProb","Total Probability of Extreme Severe Thunderstorms","%",UC_NONE +0,19,217,"WWA","Watch Warning Advisory","-",UC_NONE +0,19,235,"TCWind","Tropical Cyclone Wind Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,236,"TCSurge","Tropical Cyclone Storm Surge Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,238,"TCRain","Tropical Cyclone Flooding Rain Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,239,"TCTornado","Tropical Cyclone Tornado Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,246,"SNOWLVL","Snow Level","m",UC_M2Feet +0,19,203,"TotalSvrProb","Total Probability of Severe Thunderstorms","%",UC_NONE +0,19,204,"TotalXtrmProb","Total Probability of Extreme Severe Thunderstorms","%",UC_NONE +0,192,192,"FireWx","Critical Fire Weather","%",UC_NONE +0,192,194,"DryLightning","Dry Lightning","%",UC_NONE +2,1,192,"CANL","Cold Advisory for Newborn Livestock","0=none; 2=slight; 4=mild; 6=moderate; 8=severe; 10=extreme",UC_NONE +10,3,192,"Surge","Hurricane Storm Surge","m",UC_M2Feet +10,3,193,"ETSurge","Extra Tropical Storm Surge","m",UC_M2Feet +10,3,250,"StormTide","Storm Surge and Tide","m",UC_M2Feet +10,3,251,"Tide","Tide","m",UC_M2Feet +0,1,198,"MinRH","Minimum Relative Humidity","%",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv new file mode 100644 index 00000000..c96caa9e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv @@ -0,0 +1,7 @@ +center_code,subcenter_code,filename +7,5,grib2_table_4_2_local_HPC.csv +7,,grib2_table_4_2_local_NCEP.csv +8,0,grib2_table_4_2_local_NDFD.csv +8,65535,grib2_table_4_2_local_NDFD.csv +54,,grib2_table_4_2_local_Canada.csv +161,,grib2_table_4_2_local_MRMS.csv diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv new file mode 100644 index 00000000..a49b73cc --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv @@ -0,0 +1,261 @@ +"code","short_name","name","unit" +-4,"######################################################################################################","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#" +-1,"######################################################################################################","#","#" +0,"RESERVED","Reserved","-" +1,"SFC","Ground or water surface","-" +2,"CBL","Cloud base level","-" +3,"CTL","Level of cloud tops","-" +4,"0DEG","Level of 0 degree C isotherm","-" +5,"ADCL","Level of adiabatic condensation lifted from the surface","-" +6,"MWSL","Maximum wind level","-" +7,"TRO","Tropopause","-" +8,"NTAT","Nominal top of atmosphere","-" +9,"SEAB","Sea bottom","-" +10,"EATM","Entire Atmosphere","-" +11,"CB","Cumulonimbus Base","m" +12,"CT","Cumulonimbus Top","m" +13,"unknown","Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover)","%" +14,"LFC","Level of free convection","-" +15,"CCL","Convection condensation level","-" +16,"LNB","Level of neutral buoyancy or equilibrium","-" +17,"","Departure level of the most unstable parcel of air (MUDL)","-" +18,"","Departure level of a mixed layer parcel of air with specified layer depth","Pa" +19,"","Reserved","-" +20,"TMPL","Isothermal level","K" +21,"","Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)","kg m-3" +22,"","Highest level where mass density exceeds the specified value (top for a given threshold of mass density)","kg m-3" +23,"","Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration)","Bq m-3" +24,"","Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)","Bq m-3" +25,"","Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)","dBZ" +26,"","Convective cloud layer base","m" +27,"","Convective cloud layer top","m" +28,"","Reserved","-" +29,"","Reserved","-" +30,"","Specified radius from the centre of the Sun","m" +31,"","Solar photosphere","-" +32,"","Ionospheric D-region level","-" +33,"","Ionospheric E-region level","-" +34,"","Ionospheric F1-region level","-" +35,"","Ionospheric F2-region level","-" +36,"","Reserved","-" +37,"","Reserved","-" +38,"","Reserved","-" +39,"","Reserved","-" +40,"","Reserved","-" +41,"","Reserved","-" +42,"","Reserved","-" +43,"","Reserved","-" +44,"","Reserved","-" +45,"","Reserved","-" +46,"","Reserved","-" +47,"","Reserved","-" +48,"","Reserved","-" +49,"","Reserved","-" +50,"","Reserved","-" +51,"","Reserved","-" +52,"","Reserved","-" +53,"","Reserved","-" +54,"","Reserved","-" +55,"","Reserved","-" +56,"","Reserved","-" +57,"","Reserved","-" +58,"","Reserved","-" +59,"","Reserved","-" +60,"","Reserved","-" +61,"","Reserved","-" +62,"","Reserved","-" +63,"","Reserved","-" +64,"","Reserved","-" +65,"","Reserved","-" +66,"","Reserved","-" +67,"","Reserved","-" +68,"","Reserved","-" +69,"","Reserved","-" +70,"","Reserved","-" +71,"","Reserved","-" +72,"","Reserved","-" +73,"","Reserved","-" +74,"","Reserved","-" +75,"","Reserved","-" +76,"","Reserved","-" +77,"","Reserved","-" +78,"","Reserved","-" +79,"","Reserved","-" +80,"","Reserved","-" +81,"","Reserved","-" +82,"","Reserved","-" +83,"","Reserved","-" +84,"","Reserved","-" +85,"","Reserved","-" +86,"","Reserved","-" +87,"","Reserved","-" +88,"","Reserved","-" +89,"","Reserved","-" +90,"","Reserved","-" +91,"","Reserved","-" +92,"","Reserved","-" +93,"","Reserved","-" +94,"","Reserved","-" +95,"","Reserved","-" +96,"","Reserved","-" +97,"","Reserved","-" +98,"","Reserved","-" +99,"","Reserved","-" +100,"ISBL","Isobaric surface","Pa" +101,"MSL","Mean sea level","-" +102,"GPML","Specific altitude above mean sea level","m" +103,"HTGL","Specified height level above ground","m" +104,"SIGL","Sigma level","'sigma' value" +105,"HYBL","Hybrid level","-" +106,"DBLL","Depth below land surface","m" +107,"THEL","Isentropic (theta) level","K" +108,"SPDL","Level at specified pressure difference from ground to level","Pa" +109,"PVL","Potential vorticity surface","(K m^2)/(kg s)" +110,"RESERVED","Reserved","-" +111,"EtaL","Eta* level","-" +112,"RESERVED","Reserved","-" +113,"","Logarithmic hybrid level","-" +114,"SNOWLVL","Snow Level","m" +115,"","Sigma height level","-" +116,"","Reserved","-" +117,"unknown","Mixed layer depth","m" +118,"","Hybrid height level","-" +119,"","Hybrid pressure level","-" +120,"","Reserved","-" +121,"","Reserved","-" +122,"","Reserved","-" +123,"","Reserved","-" +124,"","Reserved","-" +125,"","Reserved","-" +126,"","Reserved","-" +127,"","Reserved","-" +128,"","Reserved","-" +129,"","Reserved","-" +130,"","Reserved","-" +131,"","Reserved","-" +132,"","Reserved","-" +133,"","Reserved","-" +134,"","Reserved","-" +135,"","Reserved","-" +136,"","Reserved","-" +137,"","Reserved","-" +138,"","Reserved","-" +139,"","Reserved","-" +140,"","Reserved","-" +141,"","Reserved","-" +142,"","Reserved","-" +143,"","Reserved","-" +144,"","Reserved","-" +145,"","Reserved","-" +146,"","Reserved","-" +147,"","Reserved","-" +148,"","Reserved","-" +149,"","Reserved","-" +150,"GVHC","Generalized Vertical Height Coordinate","-" +151,"","Soil level","Numeric" +152,"","Sea-ice level","Numeric" +153,"","Reserved","-" +154,"","Reserved","-" +155,"","Reserved","-" +156,"","Reserved","-" +157,"","Reserved","-" +158,"","Reserved","-" +159,"","Reserved","-" +160,"DBSL","Depth below sea level","m" +161,"","Depth below water surface","m" +162,"","Lake or river bottom","-" +163,"","Bottom of sediment layer","-" +164,"","Bottom of thermally active sediment layer","-" +165,"","Bottom of sediment layer penetrated by thermal wave","-" +166,"","Mixing layer","-" +167,"","Bottom of root zone","-" +168,"","Ocean model level","Numeric" +169,"","Ocean level defined by water density (sigma-theta) difference from near-surface to level","kg m-3" +170,"","Ocean level defined by water potential temperature difference from near-surface to level","K" +171,"","Ocean level defined by vertical eddy diffusivity difference from near-surface to level","m2 s-1" +172,"","Reserved","-" +173,"","Reserved","-" +174,"","Top surface of ice on sea, lake or river","-" +175,"","Top surface of ice, under snow cover, on sea, lake or river","-" +176,"","Bottom surface (underside) ice on sea, lake or river","-" +177,"","Deep soil (of indefinite depth)","-" +178,"","Reserved","-" +179,"","Top surface of glacier ice and inland ice","-" +180,"","Deep inland or glacier ice (of indefinite depth)","-" +181,"","Grid tile land fraction as a model surface","-" +182,"","Grid tile water fraction as a model surface","-" +183,"","Grid tile ice fraction on sea, lake or river as a model surface","-" +184,"","Grid tile glacier ice and inland ice fraction as a model surface","-" +185,"","Reserved","-" +186,"","Reserved","-" +187,"","Reserved","-" +188,"","Reserved","-" +189,"","Reserved","-" +190,"","Reserved","-" +191,"","Reserved","-" +192,"RESERVED","Reserved Local use","-" +193,"","Reserved for local use","-" +194,"","Reserved for local use","-" +195,"","Reserved for local use","-" +196,"","Reserved for local use","-" +197,"","Reserved for local use","-" +198,"","Reserved for local use","-" +199,"","Reserved for local use","-" +200,"EATM","Entire atmosphere (considered as a single layer)","-" +201,"EOCN","Entire ocean (considered as a single layer)","-" +202,"","Reserved for local use","-" +203,"","Reserved for local use","-" +204,"HTFL","Highest tropospheric freezing level","-" +205,"","Reserved for local use","-" +206,"GCBL","Grid scale cloud bottom level","-" +207,"GCTL","Grid scale cloud top level","-" +208,"","Reserved for local use","-" +209,"BCBL","Boundary layer cloud bottom level","-" +210,"BCTL","Boundary layer cloud top level","-" +211,"BCY","Boundary layer cloud level","-" +212,"LCBL","Low cloud bottom level","-" +213,"LCTL","Low cloud top level","-" +214,"LCY","Low cloud level","-" +215,"CEIL","Cloud ceiling","-" +216,"","Reserved for local use","-" +217,"","Reserved for local use","-" +218,"","Reserved for local use","-" +219,"","Reserved for local use","-" +220,"","Reserved for local use","-" +221,"","Reserved for local use","-" +222,"MCBL","Middle cloud bottom level","-" +223,"MCTL","Middle cloud top level","-" +224,"MCY","Middle cloud level","-" +225,"","Reserved for local use","-" +226,"","Reserved for local use","-" +227,"","Reserved for local use","-" +228,"","Reserved for local use","-" +229,"","Reserved for local use","-" +230,"","Reserved for local use","-" +231,"","Reserved for local use","-" +232,"HCBL","High cloud bottom level","-" +233,"HCTL","High cloud top level","-" +234,"HCY","High cloud level","-" +235,"OITL","Ocean Isotherm Level (1/10 deg C)","-" +236,"OLYR","Layer between two depths below ocean surface","-" +237,"OBML","Bottom of Ocean Mixed Layer (m)","-" +238,"OBIL","Bottom of Ocean Isothermal Layer (m)","-" +239,"","Reserved for local use","-" +240,"","Reserved for local use","-" +241,"","Reserved for local use","-" +242,"CCBL","Convective cloud bottom level","-" +243,"CCTL","Convective cloud top level","-" +244,"CCY","Convective cloud level","-" +245,"LLTW","Lowest level of the wet bulb zero","-" +246,"MTHE","Maximum equivalent potential temperature level","-" +247,"EHLT","Equilibrium level","-" +248,"SCBL","Shallow convective cloud bottom level","-" +249,"SCTL","Shallow convective cloud top level","-" +250,"","Reserved for local use","-" +251,"DCBL","Deep convective cloud bottom level","-" +252,"DCTL","Deep convective cloud top level","-" +253,"LBLSW","Lowest bottom level of supercooled liquid water layer","-" +254,"HTLSW","Highest top level of supercooled liquid water layer","-" +255,"MISSING","Missing","-" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv new file mode 100644 index 00000000..18ab667f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv @@ -0,0 +1,3 @@ +component,version +wmo,v30 +degrib,2.25 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_datum.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_datum.csv new file mode 100644 index 00000000..9109176b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_datum.csv @@ -0,0 +1,229 @@ +CODE,NAME,ELLIPSOID,DELTAX,SIGMAX,DELTAY,SIGMAY,DELTAZ,SIGMAZ,NORTH,SOUTH,WEST,EAST,ROTX,ROTY,ROTZ,SCALE +ADI-M,"ADINDAN, Mean",CD,-166,5,-15,5,204,3,-5,31,15,55 +ADI-A,"ADINDAN, Ethiopia",CD,-165,3,-11,3,206,3,-3,25,26,50 +ADI-B,"ADINDAN, Sudan",CD,-161,3,-14,5,205,3,-3,31,15,45 +ADI-C,"ADINDAN, Mali",CD,-123,25,-20,25,220,25,3,31,-20,11 +ADI-D,"ADINDAN, Senegal",CD,-128,25,-18,25,224,25,5,23,-24,-5 +ADI-E,"ADINDAN, Burkina Faso",CD,-118,25,-14,25,218,25,4,22,-12,8 +ADI-F,"ADINDAN, Cameroon",CD,-134,25,-2,25,210,25,-4,19,3,23 +AFG,"AFGOOYE, Somalia",KA,-43,25,-163,25,45,25,-8,19,35,60 +AIA,"ANTIGUA ISLAND ASTRO 1943",CD,-270,25,13,25,62,25,16,20,-65,-61 +AIN-A,"AIN EL ABD 1970, Bahrain",IN,-150,25,-250,25,-1,25,24,28,49,53 +AIN-B,"AIN EL ABD 1970, Saudi Arabia",IN,-143,10,-236,10,7,10,8,38,28,62 +AMA,"AMERICAN SAMOA 1962",CC,-115,25,118,25,426,25,-19,-9,-174,-165 +ANO,"ANNA 1 ASTRO 1965, Cocos Is.",AN,-491,25,-22,25,435,25,-14,-10,94,99 +ARF-M,"ARC 1950, Mean",CD,-143,20,-90,33,-294,20,-36,10,4,42 +ARF-A,"ARC 1950, Botswana",CD,-138,3,-105,5,-289,3,-33,-13,13,36 +ARF-B,"ARC 1950, Lesotho",CD,-125,3,-108,3,-295,8,-36,-23,21,35 +ARF-C,"ARC 1950, Malawi",CD,-161,9,-73,24,-317,8,-21,-3,26,42 +ARF-D,"ARC 1950, Swaziland",CD,-134,15,-105,15,-295,15,-33,-20,25,40 +ARF-E,"ARC 1950, Zaire",CD,-169,25,-19,25,-278,25,-21,10,4,38 +ARF-F,"ARC 1950, Zambia",CD,-147,21,-74,21,-283,27,-24,-1,15,40 +ARF-G,"ARC 1950, Zimbabwe",CD,-142,5,-96,8,-293,11,-29,-9,19,39 +ARF-H,"ARC 1950, Burundi",CD,-153,20,-5,20,-292,20,-11,4,21,37 +ARS-M,"ARC 1960, Kenya & Tanzania",CD,-160,20,-6,20,-302,20,-18,8,23,47 +ARS-A,"ARC 1960, Kenya",CD,-157,4,-2,3,-299,3,-11,8,28,47 +ARS-B,"ARC 1960, Tanzania",CD,-175,6,-23,9,-303,10,-18,5,23,47 +ASC,"ASCENSION ISLAND 1958",IN,-205,25,107,25,53,25,-9,-6,-16,-13 +ASM,"MONTSERRAT ISLAND ASTRO 1958",CD,174,25,359,25,365,25,15,18,-64,-61 +ASQ,"ASTRO STATION 1952, Marcus Is.",IN,124,25,-234,25,-25,25,22,26,152,156 +ATF,"ASTRO BEACON E 1945, Iwo Jima",IN,145,25,75,25,-272,25,22,26,140,144 +AUA,"AUSTRALIAN GEODETIC 1966",AN,-133,3,-48,3,148,3,-46,-4,109,161 +AUG,"AUSTRALIAN GEODETIC 1984",AN,-134,2,-48,2,149,2,-46,-4,109,161 +BAT,"DJAKARTA, INDONESIA",BR,-377,3,681,3,-50,3,-16,11,89,146 +BID,"BISSAU, Guinea-Bissau",IN,-173,25,253,25,27,25,5,19,-23,-7 +BER,"BERMUDA 1957, Bermuda Islands",CC,-73,20,213,20,296,20,31,34,-66,-63 +BOO,"BOGOTA OBSERVATORY, Colombia",IN,307,6,304,5,-318,6,-10,16,-85,-61 +BUR,"BUKIT RIMPAH, Banka & Belitung",BR,-384,-1,664,-1,-48,-1,-6,0,103,110 +CAC,"CAPE CANAVERAL, Fla & Bahamas",CC,-2,3,151,3,181,3,15,38,-94,-58 +CAI,"CAMPO INCHAUSPE 1969, Arg.",IN,-148,5,136,5,90,5,-62,-20,-76,-47 +CAO,"CANTON ASTRO 1966, Phoenix Is.",IN,298,15,-304,15,-375,15,-13,3,-180,-165 +CAP,"CAPE, South Africa",CD,-136,3,-108,6,-292,6,-43,-15,10,40 +CAZ,"CAMP AREA ASTRO, Camp McMurdo",IN,-104,-1,-129,-1,239,-1,-85,-70,135,180 +CCD,"S-JTSK, Czech Republic",BR,589,4,76,2,480,3,43,56,6,28 +CGE,"CARTHAGE, Tunisia",CD,-263,6,6,9,431,8,24,43,2,18 +CHI,"CHATHAM ISLAND ASTRO 1971, NZ",IN,175,15,-38,15,113,15,-46,-42,-180,-174 +CHU,"CHUA ASTRO, Paraguay",IN,-134,6,229,9,-29,5,-33,-14,-69,-49 +COA,"CORREGO ALEGRE, Brazil",IN,-206,5,172,3,-6,5,-39,9,-80,-29 +DAL,"DABOLA, Guinea",CD,-83,15,37,15,124,15,1,19,-18,-4 +DID,"DECEPTION ISLAND",CD,260,20,12,20,-147,20,-65,-62,-62,-58 +DOB,"GUX 1 ASTRO, Guadalcanal Is.",IN,252,25,-209,25,-751,25,-12,-8,158,163 +EAS,"EASTER ISLAND 1967",IN,211,25,147,25,111,25,-29,-26,-111,-108 +ENW,"WAKE-ENIWETOK 1960",HO,102,3,52,3,-38,3,1,16,159,175 +EST,"ESTONIA, 1937",BR,374,2,150,3,588,3,52,65,16,34 +EUR-M,"EUROPEAN 1950, Mean (3 Param)",IN,-87,3,-98,8,-121,5,30,80,5,33 +EUR-A,"EUROPEAN 1950, Western Europe",IN,-87,3,-96,3,-120,3,30,78,-15,25 +EUR-B,"EUROPEAN 1950, Greece",IN,-84,25,-95,25,-130,25,30,48,14,34 +EUR-C,"EUROPEAN 1950, Norway & Finland",IN,-87,3,-95,5,-120,3,52,80,-2,38 +EUR-D,"EUROPEAN 1950, Portugal & Spain",IN,-84,5,-107,6,-120,3,30,49,-15,10 +EUR-E,"EUROPEAN 1950, Cyprus",IN,-104,15,-101,15,-140,15,33,37,31,36 +EUR-F,"EUROPEAN 1950, Egypt",IN,-130,6,-117,8,-151,8,16,38,19,42 +EUR-G,"EUROPEAN 1950, England, Channel",IN,-86,3,-96,3,-120,3,48,62,-10,3 +EUR-H,"EUROPEAN 1950, Iran",IN,-117,9,-132,12,-164,11,19,47,37,69 +EUR-I,"EUROPEAN 1950, Sardinia(Italy)",IN,-97,25,-103,25,-120,25,37,43,6,12 +EUR-J,"EUROPEAN 1950, Sicily(Italy)",IN,-97,20,-88,20,-135,20,35,40,10,17 +EUR-K,"EUROPEAN 1950, England, Ireland",IN,-86,3,-96,3,-120,3,48,62,-12,3 +EUR-L,"EUROPEAN 1950, Malta",IN,-107,25,-88,25,-149,25,34,38,12,16 +EUR-S,"EUROPEAN 1950, Iraq, Israel",IN,-103,-1,-106,-1,-141,-1,20,48,24,60 +EUR-T,"EUROPEAN 1950, Tunisia",IN,-112,25,-77,25,-145,25,24,43,2,18 +EUS,"EUROPEAN 1979",IN,-86,3,-98,3,-119,3,30,80,-15,24 +FAH,"OMAN",CD,-346,3,-1,3,224,9,10,32,46,65 +FLO,"OBSERVATORIO MET. 1939, Flores",IN,-425,20,-169,20,81,20,38,41,-33,-30 +FOT,"FORT THOMAS 1955, Leeward Is.",CD,-7,25,215,25,225,25,16,19,-64,-61 +GAA,"GAN 1970, Rep. of Maldives",IN,-133,25,-321,25,50,25,-2,9,71,75 +GEO,"GEODETIC DATUM 1949, NZ",IN,84,5,-22,3,209,5,-48,-33,165,180 +GIZ,"DOS 1968, Gizo Island",IN,230,25,-199,25,-752,25,-10,-7,155,158 +GRA,"GRACIOSA BASE SW 1948, Azores",IN,-104,3,167,3,-38,3,37,41,-30,-26 +GUA,"GUAM 1963",CC,-100,3,-248,3,259,3,12,15,143,146 +GSE,"GUNUNG SEGARA, Indonesia",BR,-403,-1,684,-1,41,-1,-6,9,106,121 +HEN,"HERAT NORTH, Afghanistan",IN,-333,-1,-222,-1,114,-1,23,44,55,81 +HER,"HERMANNSKOGEL, old Yugoslavia",BR,682,-1,-203,-1,480,-1,35,52,7,29 +HIT,"PROVISIONAL SOUTH CHILEAN 1963",IN,16,25,196,25,93,25,-64,-25,-83,-60 +HJO,"HJORSEY 1955, Iceland",IN,-73,3,46,3,-86,6,61,69,-27,-11 +HKD,"HONG KONG 1963",IN,-156,25,-271,25,-189,25,21,24,112,116 +HTN,"HU-TZU-SHAN, Taiwan",IN,-637,15,-549,15,-203,15,20,28,117,124 +IBE,"BELLEVUE (IGN), Efate Is.",IN,-127,20,-769,20,472,20,-20,-16,167,171 +IDN,"INDONESIAN 1974",ID,-24,25,-15,25,5,25,-16,11,89,146 +IND-B,"INDIAN, Bangladesh",EA,282,10,726,8,254,12,15,33,80,100 +IND-I,"INDIAN, India & Nepal",EC,295,12,736,10,257,15,2,44,62,105 +IND-P,"INDIAN, Pakistan",EF,283,-1,682,-1,231,-1,17,44,55,81 +INF-A,"INDIAN 1954, Thailand",EA,217,15,823,6,299,12,0,27,91,111 +ING-A,"INDIAN 1960, Vietnam 16N",EA,198,25,881,25,317,25,2,30,101,115 +ING-B,"INDIAN 1960, Con Son Island",EA,182,25,915,25,344,25,6,11,104,109 +INH-A,"INDIAN 1975, Thailand",EA,209,12,818,10,290,12,0,27,91,111 +INH-A1,"INDIAN 1975, Thailand",EA,210,3,814,2,289,3,0,27,91,111 +IRL,"IRELAND 1965",AM,506,3,-122,3,611,3,50,57,-12,-4 +ISG,"ISTS 061 ASTRO 1968, S Georgia",IN,-794,25,119,25,-298,25,-56,-52,-38,-34 +IST,"ISTS 073 ASTRO 1969, Diego Garc",IN,208,25,-435,25,-229,25,-10,-4,69,75 +JOH,"JOHNSTON ISLAND 1961",IN,189,25,-79,25,-202,25,15,19,-171,-168 +KAN,"KANDAWALA, Sri Lanka",EA,-97,20,787,20,86,20,4,12,77,85 +KEG,"KERGUELEN ISLAND 1949",IN,145,25,-187,25,103,25,-52,-47,65,74 +KEA,"KERTAU 1948, W Malaysia & Sing.",EE,-11,10,851,8,5,6,-5,12,94,112 +KUS,"KUSAIE ASTRO 1951, Caroline Is.",IN,647,25,1777,25,-1124,25,-1,12,134,167 +LCF,"L.C. 5 ASTRO 1961, Cayman Brac",CC,42,25,124,25,147,25,18,21,-83,-78 +LEH,"LEIGON, Ghana",CD,-130,2,29,3,364,2,-1,17,-9,7 +LIB,"LIBERIA 1964",CD,-90,15,40,15,88,15,-1,14,-17,-1 +LUZ-A,"LUZON, Philippines",CC,-133,8,-77,11,-51,9,3,23,115,128 +LUZ-B,"LUZON, Mindanao Island",CC,-133,25,-79,25,-72,25,4,12,120,128 +MAS,"MASSAWA, Ethiopia",BR,639,25,405,25,60,25,7,25,37,53 +MER,"MERCHICH, Morocco",CD,31,5,146,3,47,3,22,42,-19,5 +MID,"MIDWAY ASTRO 1961, Midway Is.",IN,403,25,-81,25,277,25,25,30,-180,-169 +MIK,"MAHE 1971, Mahe Is.",CD,41,25,-220,25,-134,25,-6,-3,54,57 +MIN-A,"MINNA, Cameroon",CD,-81,25,-84,25,115,25,-4,19,3,23 +MIN-B,"MINNA, Nigeria",CD,-92,3,-93,6,122,5,-1,21,-4,20 +MOD,"ROME 1940, Sardinia",IN,-225,25,-65,25,9,25,37,43,6,12 +MPO,"M'PORALOKO, Gabon",CD,-74,25,-130,25,42,25,-10,8,3,20 +MVS,"VITI LEVU 1916, Viti Levu Is.",CD,51,25,391,25,-36,25,-20,-16,176,180 +NAH-A,"NAHRWAN, Masirah Island (Oman)",CD,-247,25,-148,25,369,25,19,22,57,60 +NAH-B,"NAHRWAN, United Arab Emirates",CD,-249,25,-156,25,381,25,17,32,45,62 +NAH-C,"NAHRWAN, Saudi Arabia",CD,-243,20,-192,20,477,20,8,38,28,62 +NAP,"NAPARIMA, Trinidad & Tobago",IN,-10,15,375,15,165,15,8,13,-64,-59 +NAR-A,"NORTH AMERICAN 1983, Alaska",RF,0,2,0,2,0,2,48,78,-175,-135 +NAR-B,"NORTH AMERICAN 1983, Canada",RF,0,2,0,2,0,2,36,90,-150,-50 +NAR-C,"NORTH AMERICAN 1983, CONUS",RF,0,2,0,2,0,2,15,60,-135,-60 +NAR-D,"NORTH AMERICAN 1983, Mexico",RF,0,2,0,2,0,2,11,35,-122,-72 +NAR-E,"NORTH AMERICAN 1983, Aleutian",RF,-2,5,0,2,4,5,51,74,-180,180 +NAR-H,"NORTH AMERICAN 1983, Hawaii",RF,1,2,1,2,-1,2,17,24,-164,-153 +NAS-A,"NORTH AMERICAN 1927, Eastern US",CC,-9,5,161,5,179,8,18,55,-102,-60 +NAS-B,"NORTH AMERICAN 1927, Western US",CC,-8,5,159,3,175,3,19,55,-132,-87 +NAS-C,"NORTH AMERICAN 1927, CONUS",CC,-8,5,160,5,176,6,15,60,-135,-60 +NAS-D,"NORTH AMERICAN 1927, Alaska",CC,-5,5,135,9,172,5,47,78,-175,-130 +NAS-E,"NORTH AMERICAN 1927, Canada",CC,-10,15,158,11,187,6,36,90,-150,-50 +NAS-F,"NORTH AMERICAN 1927, Alberta/BC",CC,-7,8,162,8,188,6,43,65,-145,-105 +NAS-G,"NORTH AMERICAN 1927, E. Canada",CC,-22,6,160,6,190,3,38,68,-85,-45 +NAS-H,"NORTH AMERICAN 1927, Man/Ont",CC,-9,9,157,5,184,5,36,63,-108,-69 +NAS-I,"NORTH AMERICAN 1927, NW Terr.",CC,4,5,159,5,188,3,43,90,-144,-55 +NAS-J,"NORTH AMERICAN 1927, Yukon",CC,-7,5,139,8,181,3,53,75,-147,-117 +NAS-L,"NORTH AMERICAN 1927, Mexico",CC,-12,8,130,6,190,6,10,38,-122,-80 +NAS-N,"NORTH AMERICAN 1927, C. America",CC,0,8,125,3,194,5,3,25,-98,-77 +NAS-O,"NORTH AMERICAN 1927, Canal Zone",CC,0,20,125,20,201,20,3,15,-86,-74 +NAS-P,"NORTH AMERICAN 1927, Caribbean",CC,-3,3,142,9,183,12,8,29,-87,-58 +NAS-Q,"NORTH AMERICAN 1927, Bahamas",CC,-4,5,154,3,178,5,19,29,-83,-71 +NAS-R,"NORTH AMERICAN 1927, San Salv.",CC,1,25,140,25,165,25,23,26,-75,-74 +NAS-T,"NORTH AMERICAN 1927, Cuba",CC,-9,25,152,25,178,25,18,25,-87,-72 +NAS-U,"NORTH AMERICAN 1927, Greenland",CC,11,25,114,25,195,25,74,81,-74,-56 +NAS-V,"NORTH AMERICAN 1927, Aleutian E",CC,-2,6,152,8,149,10,50,58,-180,-161 +NAS-W,"NORTH AMERICAN 1927, Aleutian W",CC,2,10,204,10,105,10,50,58,169,180 +NSD,"NORTH SAHARA 1959, Algeria",CD,-186,25,-93,25,310,25,13,43,-15,18 +OEG,"OLD EGYPTIAN 1907",HE,-130,3,110,6,-13,8,16,38,19,42 +OGB-M,"ORDNANCE GB 1936, Mean (3 Para)",AA,375,10,-111,10,431,15,44,66,-14,7 +OGB-A,"ORDNANCE GB 1936, England",AA,371,5,-112,5,434,6,44,61,-12,7 +OGB-B,"ORDNANCE GB 1936, Eng., Wales",AA,371,10,-111,10,434,15,44,61,-12,7 +OGB-C,"ORDNANCE GB 1936, Scotland",AA,384,10,-111,10,425,10,49,66,-14,4 +OGB-D,"ORDNANCE GB 1936, Wales",AA,370,20,-108,20,434,20,46,59,-11,3 +OHA-M,"OLD HAWAIIAN (CC), Mean",CC,61,25,-285,20,-181,20,17,24,-164,-153 +OHA-A,"OLD HAWAIIAN (CC), Hawaii",CC,89,25,-279,25,-183,25,17,22,-158,-153 +OHA-B,"OLD HAWAIIAN (CC), Kauai",CC,45,20,-290,20,-172,20,20,24,-161,-158 +OHA-C,"OLD HAWAIIAN (CC), Maui",CC,65,25,-290,25,-190,25,19,23,-158,-154 +OHA-D,"OLD HAWAIIAN (CC), Oahu",CC,58,10,-283,6,-182,6,20,23,-160,-156 +OHI-M,"OLD HAWAIIAN (IN), Mean",IN,201,25,-228,20,-346,20,17,24,-164,-153 +OHI-A,"OLD HAWAIIAN (IN), Hawaii",IN,229,25,-222,25,-348,25,17,22,-158,-153 +OHI-B,"OLD HAWAIIAN (IN), Kauai",IN,185,20,-233,20,-337,20,20,24,-161,-158 +OHI-C,"OLD HAWAIIAN (IN), Maui",IN,205,25,-233,25,-355,25,19,23,-158,-154 +OHI-D,"OLD HAWAIIAN (IN), Oahu",IN,198,10,-226,6,-347,6,20,23,-160,-156 +PHA,"AYABELLE LIGHTHOUSE, Djibouti",CD,-79,25,-129,25,145,25,5,20,36,49 +PIT,"PITCAIRN ASTRO 1967",IN,185,25,165,25,42,25,-27,-21,-134,-119 +PLN,"PICO DE LAS NIEVES, Canary Is.",IN,-307,25,-92,25,127,25,26,31,-20,-12 +POS,"PORTO SANTO 1936, Madeira Is.",IN,-499,25,-249,25,314,25,31,35,-18,-15 +PRP-A,"PROV. S AMERICAN 1956, Bolivia",IN,-270,5,188,11,-388,14,-28,-4,-75,-51 +PRP-B,"PROV. S AMERICAN 1956, N Chile",IN,-270,25,183,25,-390,25,-45,-12,-83,-60 +PRP-C,"PROV. S AMERICAN 1956, S Chile",IN,-305,20,243,20,-442,20,-64,-20,-83,-60 +PRP-D,"PROV. S AMERICAN 1956, Colombia",IN,-282,15,169,15,-371,15,-10,16,-85,-61 +PRP-E,"PROV. S AMERICAN 1956, Ecuador",IN,-278,3,171,5,-367,3,-11,7,-85,-70 +PRP-F,"PROV. S AMERICAN 1956, Guyana",IN,-298,6,159,14,-369,5,-4,14,-67,-51 +PRP-G,"PROV. S AMERICAN 1956, Peru",IN,-279,6,175,8,-379,12,-24,5,-87,-63 +PRP-H,"PROV. S AMERICAN 1956, Venez",IN,-295,9,173,14,-371,15,-5,18,-79,-54 +PRP-M,"PROV. S AMERICAN 1956, Mean",IN,-288,17,175,27,-376,27,-64,18,-87,-51 +PTB,"POINT 58, Burkina Faso & Niger",CD,-106,25,-129,25,165,25,0,10,-15,25 +PTN,"POINT NOIRE 1948, Congo",CD,-148,25,51,25,-291,25,-11,10,5,25 +PUK,"PULKOVO 1942, Russia",KA,28,-1,-130,-1,-95,-1,36,89,-180,180 +PUR,"PUERTO RICO & Virgin Is.",CC,11,3,72,3,-101,3,16,20,-69,-63 +QAT,"QATAR NATIONAL",IN,-128,20,-283,20,22,20,19,32,45,57 +QUO,"QORNOQ, South Greenland",IN,164,25,138,25,-189,32,57,85,-77,-7 +REU,"REUNION, Mascarene Is.",IN,94,25,-948,25,-1262,25,-27,-12,47,65 +SAE,"SANTO (DOS) 1965",IN,170,25,42,25,84,25,-20,-11,163,172 +SAO,"SAO BRAZ, Santa Maria Is.",IN,-203,25,141,25,53,25,35,39,-27,-23 +SAP,"SAPPER HILL 1943, E Falkland Is",IN,-355,1,21,1,72,1,-54,-50,-61,-56 +SAN-M,"SOUTH AMERICAN 1969, Mean",SA,-57,15,1,6,-41,9,-65,-50,-90,-25 +SAN-A,"SOUTH AMERICAN 1969, Argentina",SA,-62,5,-1,5,-37,5,-62,-20,-76,-47 +SAN-B,"SOUTH AMERICAN 1969, Bolivia",SA,-61,15,2,15,-48,15,-28,-4,-75,-51 +SAN-C,"SOUTH AMERICAN 1969, Brazil",SA,-60,3,-2,5,-41,5,-39,9,-80,-29 +SAN-D,"SOUTH AMERICAN 1969, Chile",SA,-75,15,-1,8,-44,11,-64,-12,-83,-60 +SAN-E,"SOUTH AMERICAN 1969, Colombia",SA,-44,6,6,6,-36,5,-10,16,-85,-61 +SAN-F,"SOUTH AMERICAN 1969, Ecuador",SA,-48,3,3,3,-44,3,-11,7,-85,-70 +SAN-G,"SOUTH AMERICAN 1969, Guyana",SA,-53,9,3,5,-47,5,-4,14,-67,-51 +SAN-H,"SOUTH AMERICAN 1969, Paraguay",SA,-61,15,2,15,-33,15,-33,-14,-69,-49 +SAN-I,"SOUTH AMERICAN 1969, Peru",SA,-58,5,0,5,-44,5,-24,5,-87,-63 +SAN-J,"SOUTH AMERICAN 1969, Baltra",SA,-47,25,26,25,-42,25,-2,1,-92,-89 +SAN-K,"SOUTH AMERICAN 1969, Trinidad",SA,-45,25,12,25,-33,25,4,17,-68,-55 +SAN-L,"SOUTH AMERICAN 1969, Venezuela",SA,-45,3,8,6,-33,3,-5,18,-79,-54 +SCK,"SCHWARZECK, Namibia",BN,616,20,97,20,-251,20,-35,-11,5,31 +SGM,"SELVAGEM GRANDE 1938, Salvage Is,"I,N -28,9 2,5 -12,4 25,6,0 2,28,32,-18,-14 +SHB,"ASTRO DOS 71/4, St. Helena Is.",IN,-320,25,550,25,-494,25,-18,-14,-7,-4 +SOA,"SOUTH ASIA, Singapore",FA,7,25,-10,25,-26,25,0,3,102,106 +SPK-A,"S-42 (PULKOVO 1942), Hungary",KA,28,2,-121,2,-77,2,40,54,11,29 +SPK-B,"S-42 (PULKOVO 1942), Poland",KA,23,4,-124,2,-82,4,43,60,8,30 +SPK-C,"S-42 (PK42) Former Czechoslov.",KA,26,3,-121,3,-78,2,42,57,6,28 +SPK-D,"S-42 (PULKOVO 1942), Latvia",KA,24,2,-124,2,-82,2,50,64,15,34 +SPK-E,"S-42 (PK 1942), Kazakhstan",KA,15,25,-130,25,-84,25,35,62,41,93 +SPK-F,"S-42 (PULKOVO 1942), Albania",KA,24,3,-130,3,-92,3,34,48,14,26 +SPK-G,"S-42 (PULKOVO 1942), Romania",KA,28,3,-121,5,-77,3,38,54,15,35 +SRL,"SIERRA LEONE 1960",CD,-88,15,4,15,101,15,1,16,-19,-4 +TAN,"TANANARIVE OBSERVATORY 1925",IN,-189,-1,-242,-1,-91,-1,-34,-8,40,53 +TDC,"TRISTAN ASTRO 1968",IN,-632,25,438,25,-609,25,-39,-36,-14,-11 +TIL,"TIMBALAI 1948, Brunei & E Malay",EB,-679,10,669,10,-48,12,-5,15,101,125 +TOY-A,"TOKYO, Japan",BR,-148,8,507,5,685,8,19,51,119,156 +TOY-B,"TOKYO, South Korea",BR,-146,8,507,5,687,8,27,45,120,139 +TOY-B1,"TOKYO, South Korea",BR,-147,2,506,2,687,2,27,45,120,139 +TOY-C,"TOKYO, Okinawa",BR,-158,20,507,5,676,20,19,31,119,134 +TOY-M,"TOKYO, Mean",BR,-148,20,507,5,685,20,23,53,120,155 +TRN,"ASTRO TERN ISLAND (FRIG) 1961",IN,114,25,-116,25,-333,25,22,26,-168,-164 +VOI,"VOIROL 1874, Algeria",CD,-73,-1,-247,-1,227,-1,13,43,-15,18 +VOR,"VOIROL 1960, Algeria",CD,-123,25,-206,25,219,25,13,43,-15,18 +WAK,"WAKE ISLAND ASTRO 1952",IN,276,25,-57,25,149,25,17,21,164,168 +YAC,"YACARE, Uruguay",IN,-155,-1,171,-1,37,-1,-40,-25,-65,-47 +ZAN,"ZANDERIJ, Suriname",IN,-265,5,120,5,-358,8,-10,20,-76,-47 +KGS,"KOREAN GEO DATUM 1995, S Korea",WE,0,1,0,1,0,1,27,45,120,139 +SIR,"SIRGAS, South America",RF,0,1,0,1,0,1,-65,-50,-90,-25 +EUR-7,"EUROPEAN 1950, Mean (7 Param)",IN,-102,,-102,,-129,,,,,0.413,-0.184,0.385,0.0000024664 +OGB-7,"ORDNANCE GB 1936, Mean (7 Para)",AA,446,,-99,,544,,,,,,-0.945,-0.261,-0.435,-0.0000208927 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv new file mode 100644 index 00000000..2dd3b3a1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv @@ -0,0 +1,24 @@ +NAME,CODE,A,B,RF +Airy 1830 ,AA,6377563.396,6356256.9090,299.324964600 +Modified Airy ,AM,6377340.189,6356034.4480,299.324964600 +Australian National ,AN,6378160.000,6356774.7190,298.250000000 +Bessel 1841(Namibia) ,BN,6377483.865,6356165.3830,299.152812800 +Bessel 1841 ,BR,6377397.155,6356078.9630,299.152812800 +Clarke 1866 ,CC,6378206.400,6356583.8000,294.978698200 +Clarke 1880 ,CD,6378249.145,6356514.8700,293.465000000 +Everest (India 1830) ,EA,6377276.345,6356075.4130,300.801700000 +Everest (E. Malasia, Brunei) ,EB,6377298.556,6356097.5500,300.801700000 +Everest 1956 (India) ,EC,6377301.243,6356100.2280,300.801700000 +Everest 1969 (West Malasia) ,ED,6377295.664,6356094.6680,300.801700000 +Everest 1948(W.Mals. & Sing.) ,EE,6377304.063,6356103.0390,300.801700000 +Everest (Pakistan) ,EF,6377309.613,6356109.5710,300.801700000 +Mod. Fischer 1960(South Asia) ,FA,6378155.000,6356773.3200,298.300000000 +Helmert 1906 ,HE,6378200.000,6356818.1700,298.300000000 +Hough 1960 ,HO,6378270.000,6356794.3430,297.000000000 +Indonesian 1974 ,ID,6378160.000,6356774.5040,298.247000000 +International 1924 ,IN,6378388.000,6356911.9460,297.000000000 +Krassovsky 1940 ,KA,6378245.000,6356863.0190,298.300000000 +GRS 80 ,RF,6378137.000,6356752.3141,298.257222101 +South American 1969 ,SA,6378160.000,6356774.7190,298.250000000 +WGS 72 ,WD,6378135.000,6356750.5200,298.260000000 +WGS 84 ,WE,6378137.000,6356752.3142,298.257223563 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/header.dxf b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/header.dxf new file mode 100644 index 00000000..3cf13f49 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/header.dxf @@ -0,0 +1,1124 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1018 + 9 +$ACADMAINTVER + 70 + 0 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$EXTMIN + 10 +30.0 + 20 +49.75 + 30 +0.0 + 9 +$EXTMAX + 10 +130.5 + 20 +163.1318914119703 + 30 +0.0 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +12.0 + 20 +9.0 + 9 +$ORTHOMODE + 70 + 0 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLMODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 1 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 + 1 + 9 +$TEXTSIZE + 40 +0.2 + 9 +$TRACEWID + 40 +0.05 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 + 256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 + 0 + 9 +$LUNITS + 70 + 2 + 9 +$LUPREC + 70 + 4 + 9 +$SKETCHINC + 40 +0.1 + 9 +$FILLETRAD + 40 +0.5 + 9 +$AUNITS + 70 + 0 + 9 +$AUPREC + 70 + 0 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 + 0 + 9 +$CHAMFERA + 40 +0.5 + 9 +$CHAMFERB + 40 +0.5 + 9 +$CHAMFERC + 40 +1.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 + 0 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 + 0 + 9 +$PDMODE + 70 + 0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 + 0 + 9 +$SPLINETYPE + 70 + 6 + 9 +$SPLINESEGS + 70 + 8 + 9 +$HANDSEED + 5 +44 + 9 +$SURFTAB1 + 70 + 6 + 9 +$SURFTAB2 + 70 + 6 + 9 +$SURFTYPE + 70 + 6 + 9 +$SURFU + 70 + 6 + 9 +$SURFV + 70 + 6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 + 0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 + 0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$WORLDVIEW + 70 + 1 + 9 +$SHADEDGE + 70 + 3 + 9 +$SHADEDIF + 70 + 70 + 9 +$TILEMODE + 70 + 1 + 9 +$MAXACTVP + 70 + 64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 + 0 + 9 +$PEXTMIN + 10 +1.000000000000000E+20 + 20 +1.000000000000000E+20 + 30 +1.000000000000000E+20 + 9 +$PEXTMAX + 10 +-1.000000000000000E+20 + 20 +-1.000000000000000E+20 + 30 +-1.000000000000000E+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +12.0 + 20 +9.0 + 9 +$UNITMODE + 70 + 0 + 9 +$VISRETAIN + 70 + 1 + 9 +$PLINEGEN + 70 + 0 + 9 +$PSLTSCALE + 70 + 1 + 9 +$TREEDEPTH + 70 + 3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 + 0 + 9 +$CMLSCALE + 40 +1.0 + 9 +$PROXYGRAPHICS + 70 + 1 + 9 +$MEASUREMENT + 70 + 0 + 9 +$CELWEIGHT +370 + -1 + 9 +$ENDCAPS +280 + 0 + 9 +$JOINSTYLE +280 + 0 + 9 +$LWDISPLAY +290 + 0 + 9 +$INSUNITS + 70 + 1 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 + 1 + 9 +$CEPSNTYPE +380 + 0 + 9 +$PSTYLEMODE +290 + 1 + 9 +$EXTNAMES +290 + 1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 + 0 + 9 +$SORTENTS +280 + 127 + 9 +$INDEXCTL +280 + 0 + 9 +$HIDETEXT +280 + 1 + 9 +$XCLIPFRAME +290 + 0 + 9 +$HALOGAP +280 + 0 + 9 +$OBSCOLOR + 70 + 257 + 9 +$OBSLTYPE +280 + 0 + 9 +$INTERSECTIONDISPLAY +280 + 0 + 9 +$INTERSECTIONCOLOR + 70 + 257 + 9 +$DIMASSOC +280 + 2 + 9 +$PROJECTNAME + 1 + + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 + 0 + 91 + 4 +280 + 0 +281 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +VPORT + 5 +29 +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +80.25 + 22 +106.4409457059851 + 13 +0.0 + 23 +0.0 + 14 +0.5 + 24 +0.5 + 15 +0.5 + 25 +0.5 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +113.3818914119703 + 41 +0.8863849310366128 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 1000 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 +281 + 0 + 65 + 1 +110 +0.0 +120 +0.0 +130 +0.0 +111 +1.0 +121 +0.0 +131 +0.0 +112 +0.0 +122 +1.0 +132 +0.0 + 79 + 0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LAYER + 5 +10 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 +100 +AcDbDimStyleTable + 0 +DIMSTYLE +105 +27 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 + 0 +340 +11 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +22 + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs new file mode 100644 index 00000000..43e0f474 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs @@ -0,0 +1,57 @@ + + + BasicPropertyUnit + BasicPropertyUnit + None + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + nationalCadastralReference + nationalCadastralReference + String + + + areaValue + areaValue + Real + + + areaValue_uom + areaValue@uom + String + + + validFrom + validFrom + String + + + validTo + validTo + String + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + administrativeUnit_href + administrativeUnit@href + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs new file mode 100644 index 00000000..6b271308 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs @@ -0,0 +1,60 @@ + + + CadastralBoundary + CadastralBoundary + + geometry + LineString + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + + + estimatedAccuracy + estimatedAccuracy + Real + + + estimatedAccuracy_uom + estimatedAccuracy@uom + String + + + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + + validFrom + validFrom + String + + + validTo + validTo + String + + + + parcel_href + parcel@href + StringList + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs new file mode 100644 index 00000000..129b0e2c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs @@ -0,0 +1,81 @@ + + + CadastralParcel + CadastralParcel + + geometry + geometry + MultiPolygon + + + referencePoint + referencePoint + Point + + + areaValue + areaValue + Real + + + areaValue_uom + areaValue@uom + String + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + label + label + String + + + nationalCadastralReference + nationalCadastralReference + String + + + validFrom + validFrom + String + + + validTo + validTo + String + + + basicPropertyUnit_href + basicPropertyUnit@href + StringList + + + administrativeUnit_href + administrativeUnit@href + String + + + zoning_href + zoning@href + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs new file mode 100644 index 00000000..e564dff6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs @@ -0,0 +1,161 @@ + + + CadastralZoning + CadastralZoning + + + geometry + geometry + MultiPolygon + + + referencePoint + referencePoint + Point + + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + + estimatedAccuracy + estimatedAccuracy + Real + + + estimatedAccuracy_uom + estimatedAccuracy@uom + String + + + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + + label + label + String + + + + level + level + String + + + + levelName + levelName|LocalisedCharacterString + StringList + + + levelName_locale + levelName|LocalisedCharacterString@locale + StringList + + + + + + name_language + name|GeographicalName|language + StringList + + + name_nativeness + name|GeographicalName|nativeness + StringList + + + name_nameStatus + name|GeographicalName|nameStatus + StringList + + + name_pronunciation + name|GeographicalName|pronunciation + StringList + + + name_spelling_text + name|GeographicalName|spelling|SpellingOfName|text + StringList + + + name_spelling_script + name|GeographicalName|spelling|SpellingOfName|script + StringList + + + + nationalCadastalZoningReference + nationalCadastalZoningReference + String + + + + originalMapScaleDenominator + originalMapScaleDenominator + Integer + + + + validFrom + validFrom + String + + + validTo + validTo + String + + + + upperLevelUnit_href + upperLevelUnit@href + String + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs new file mode 100644 index 00000000..1b066551 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs @@ -0,0 +1,59 @@ + + + AdmArea + AdmArea + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admCode + admCode + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs new file mode 100644 index 00000000..0214a6f6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs @@ -0,0 +1,49 @@ + + + AdmBdry + AdmBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs new file mode 100644 index 00000000..5f80403a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs @@ -0,0 +1,59 @@ + + + AdmPt + AdmPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admCode + admCode + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs new file mode 100644 index 00000000..007b1a33 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs @@ -0,0 +1,54 @@ + + + BldA + BldA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs new file mode 100644 index 00000000..f456be87 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs @@ -0,0 +1,54 @@ + + + BldL + BldL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs new file mode 100644 index 00000000..2f5a40e4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs @@ -0,0 +1,54 @@ + + + Cntr + Cntr + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + alti + alti + Real + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs new file mode 100644 index 00000000..f17b98ba --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs @@ -0,0 +1,49 @@ + + + CommBdry + CommBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs new file mode 100644 index 00000000..e6666b1c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs @@ -0,0 +1,59 @@ + + + CommPt + CommPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admCode + admCode + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs new file mode 100644 index 00000000..7dbe45ea --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs @@ -0,0 +1,54 @@ + + + Cstline + Cstline + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs new file mode 100644 index 00000000..e86ba792 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs @@ -0,0 +1,54 @@ + + + ElevPt + ElevPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + alti + alti + Real + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs new file mode 100644 index 00000000..b7810cf1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs @@ -0,0 +1,94 @@ + + + GCP + GCP + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + advNo + advNo + String + + + orgName + orgName + String + + + type + type + String + + + gcpClass + gcpClass + String + + + gcpCode + gcpCode + String + + + name + name + String + + + B + B + Real + + + L + L + Real + + + alti + alti + Real + + + altiAcc + altiAcc + Integer + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs new file mode 100644 index 00000000..c13e3963 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs @@ -0,0 +1,49 @@ + + + LeveeEdge + LeveeEdge + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs new file mode 100644 index 00000000..70921813 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs @@ -0,0 +1,54 @@ + + + RailCL + RailCL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs new file mode 100644 index 00000000..9c4e1ac9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs @@ -0,0 +1,44 @@ + + + RdASL + RdASL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs new file mode 100644 index 00000000..7729d2db --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs @@ -0,0 +1,54 @@ + + + RdArea + RdArea + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs new file mode 100644 index 00000000..0675e934 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs @@ -0,0 +1,59 @@ + + + RdCompt + RdCompt + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs new file mode 100644 index 00000000..de9fe09a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs @@ -0,0 +1,59 @@ + + + RdEdg + RdEdg + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs new file mode 100644 index 00000000..24e2ab3e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs @@ -0,0 +1,49 @@ + + + RdMgtBdry + RdMgtBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs new file mode 100644 index 00000000..f63b17d6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs @@ -0,0 +1,59 @@ + + + RdSgmtA + RdSgmtA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs new file mode 100644 index 00000000..26361312 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs @@ -0,0 +1,49 @@ + + + RvrMgtBdry + RvrMgtBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs new file mode 100644 index 00000000..438b7ded --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs @@ -0,0 +1,49 @@ + + + SBAPt + SBAPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + sbaNo + sbaNo + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs new file mode 100644 index 00000000..9fc59d82 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs @@ -0,0 +1,54 @@ + + + SBArea + SBArea + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + sbaNo + sbaNo + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs new file mode 100644 index 00000000..b2915837 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs @@ -0,0 +1,44 @@ + + + SBBdry + SBBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs new file mode 100644 index 00000000..7eff1d67 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs @@ -0,0 +1,54 @@ + + + WA + WA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs new file mode 100644 index 00000000..7d20ea2c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs @@ -0,0 +1,54 @@ + + + WL + WL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs new file mode 100644 index 00000000..02652ca8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs @@ -0,0 +1,54 @@ + + + WStrA + WStrA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs new file mode 100644 index 00000000..8341102c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs @@ -0,0 +1,54 @@ + + + WStrL + WStrL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml new file mode 100644 index 00000000..4250c8cd --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml @@ -0,0 +1,3290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd new file mode 100644 index 00000000..a47e24c6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json new file mode 100644 index 00000000..af23826d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json @@ -0,0 +1,528 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Schema for ogrinfo -json output", + + "oneOf": [ + { + "$ref": "#/definitions/dataset" + } + ], + + "definitions": { + + "dataset": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "driverShortName": { + "type": "string" + }, + "driverLongName": { + "type": "string" + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/definitions/layer" + } + }, + "metadata": { + "$ref": "#/definitions/metadata" + }, + "domains": { + "$ref": "#/definitions/domains" + }, + "relationships": { + "$ref": "#/definitions/relationships" + }, + "rootGroup": { + "$ref": "#/definitions/group" + } + }, + "required": [ + "layers", + "metadata", + "domains" + ], + "additionalProperties": false + }, + + "layer": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/metadata" + }, + "fidColumnName": { + "type": "string" + }, + "featureCount": { + "type": "number" + }, + "features": { + "type": "array", + "items": { + "$ref": "https://geojson.org/schema/Feature.json" + } + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "geometryFields": { + "type": "array", + "items": { + "$ref": "#/definitions/geometryField" + } + } + }, + "required": [ + "name", + "metadata", + "geometryFields", + "fields" + ], + "additionalProperties": false + }, + + "metadata": { + "type": "object", + "$comment": "Object whose keys are metadata domain names. The empty string is a valid metadata domain name, and is used for the default domain.", + "patternProperties": { + "^.*$": { + "$ref": "#/definitions/metadataDomain" + } + } + }, + + "metadataDomain": { + "$comment": " The values of a metadadomain are key: string pairs, or arbitrary JSON objects for metadata domain names starting with the \"json:\" prefix.", + "any": [ + { + "type": "object" + }, + { + "type": "#/definitions/keyValueDict" + } + ] + }, + + "field": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/fieldType" + }, + "subType": { + "$ref": "#/definitions/fieldSubType" + }, + "width": { + "type": "integer" + }, + "precision": { + "type": "integer" + }, + "nullable": { + "type": "boolean" + }, + "uniqueConstraint": { + "type": "boolean" + }, + "defaultValue": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "domainName": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "timezone": { + "type": "string", + "pattern": "^(localtime|(mixed timezones)|UTC|((\\+|-)[0-9][0-9]:[0-9][0-9]))$" + } + }, + "required": [ + "name", + "type", + "nullable", + "uniqueConstraint" + ], + "additionalProperties": false + }, + + "fieldType": { + "enum": [ + "Integer", + "Integer64", + "Real", + "String", + "Binary", + "IntegerList", + "Integer64List", + "RealList", + "StringList", + "Date", + "Time", + "DateTime" + ] + }, + + "fieldSubType": { + "enum": [ + "None", + "Boolean", + "Int16", + "Float32", + "JSON", + "UUID" + ] + }, + + "geometryField": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "pattern": "^(Geometry|((Multi)?Point)|((Multi)?LineString)|((Multi)?Polygon)|GeometryCollection|((Multi)?Curve)|((Multi)?Surface)|CircularString|CompoundCurve|CurvePolygon|Tin|PolyhedralSurface|Triangle)[Z]?[M]?$" + }, + "nullable": { + "type": "boolean" + }, + "extent": { + "type": "array", + "items": { + "type": "number", + "minItems": 4, + "maxItems": 4 + } + }, + "extent3D": { + "type": "array", + "items": { + "type": [ + "null", + "number" + ], + "minItems": 6, + "maxItems": 6 + } + }, + "coordinateSystem": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/coordinateSystem" + } + ] + }, + "supportedSRSList": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "object", + "properties": { + "authority": { + "type": "string" + }, + "code": { + "type": "string" + } + } + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "wkt": { + "type": "string" + } + }, + "additionalProperties": false + } + ] + } + }, + "xyCoordinateResolution": { + "type": "number" + }, + "zCoordinateResolution": { + "type": "number" + }, + "mCoordinateResolution": { + "type": "number" + }, + "coordinatePrecisionFormatSpecificOptions": { + "type": "object" + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + + "coordinateSystem": { + "type": "object", + "properties": { + "wkt": { + "type": "string" + }, + "projjson": { + "$ref": "https://proj.org/schemas/v0.5/projjson.schema.json" + }, + "dataAxisToSRSAxisMapping": { + "type": "array", + "items": { + "type": "number", + "minItems": 2, + "maxItems": 3 + } + }, + "coordinateEpoch": { + "type": "number" + } + }, + "required": [ + "wkt", + "dataAxisToSRSAxisMapping" + ], + "additionalProperties": false + }, + + "domains": { + "type": "object", + "patternProperties": { + "^.*$": { + "$ref": "#/definitions/domain" + } + }, + "additionalProperties": false + }, + + "keyValueDict": { + "type": "object", + "patternProperties": { + "^.*$": {} + } + }, + + "domain": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "enum": [ + "coded", + "range", + "glob" + ] + }, + "fieldType": { + "$ref": "#/definitions/fieldType" + }, + "fieldSubType": { + "$ref": "#/definitions/fieldSubType" + }, + "glob": { + "$comment": "only present when type=coded", + "type": "string" + }, + "codedValues": { + "$comment": "only present when type=coded", + "$ref": "#/definitions/keyValueDict" + }, + "splitPolicy": { + "enum": [ + "default value", + "duplicate", + "geometry ratio" + ] + }, + "mergePolicy": { + "enum": [ + "default value", + "sum", + "geometry weighted" + ] + }, + "minValue": { + "$comment": "only present when type=range", + "any": [ + { + "type": "string " + }, + { + "type": "number" + } + ] + }, + "minValueIncluded": { + "$comment": "only present when type=range", + "type": "boolean" + }, + "maxValue": { + "$comment": "only present when type=range", + "any": [ + { + "type": "string " + }, + { + "type": "number" + } + ] + }, + "maxValueIncluded": { + "$comment": "only present when type=range", + "type": "boolean" + } + }, + "required": [ + "type", + "fieldType", + "splitPolicy", + "mergePolicy" + ], + "additionalProperties": false + }, + + "group": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "layerNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/definitions/group" + } + } + }, + "required": [ + "layerNames", + "groups" + ], + "additionalProperties": false + }, + + "relationships": { + "type": "object", + "patternProperties": { + "^.*$": { + "$ref": "#/definitions/relationship" + } + }, + "additionalProperties": false + }, + + "relationship": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Composite", + "Association", + "Aggregation" + ] + }, + "related_table_type": { + "type": "string" + }, + "cardinality": { + "type": "string", + "enum": [ + "OneToOne", + "OneToMany", + "ManyToOne", + "ManyToMany" + ] + }, + "left_table_name": { + "type": "string" + }, + "right_table_name": { + "type": "string" + }, + "left_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "right_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "mapping_table_name": { + "type": "string" + }, + "left_mapping_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "right_mapping_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "forward_path_label": { + "type": "string" + }, + "backward_path_label": { + "type": "string" + } + }, + "required": [ + "type", + "related_table_type", + "cardinality", + "left_table_name", + "right_table_name", + "left_table_fields", + "right_table_fields", + "forward_path_label", + "backward_path_label" + ], + "additionalProperties": false + } + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd new file mode 100644 index 00000000..74dc747d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd @@ -0,0 +1,530 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required element + + + + + Optional element + + + + + SrcLayer or(eclusive) SrcSQL are required elements + + + + + + + + + + + + + + + + Use GeometryField.GeometryType for multi-geometry field support. + + + + + Use GeometryField.SRS for multi-geometry field support. + + + + + May be repeated + + + + + May be repeated + + + + + Use GeometryField.SrcRegion for multi-geometry field support. + + + + + Default to FALSE. + + + + + + Use GeometryField.ExtentXMin, etc... for multi-geometry field support. + + + + + + + + + + + + + + + + + + + + + + + + + + + User-facing name of the FID column. + + + + + + + + + + + + + + + + + + + + + Default to FALSE. + + + + + + Default to FALSE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defaults to the value of "name" if not specified. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defaults to Direct. + + + + + Name of the geometry field + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns". Defaults to TRUE. + + + + + Only used if no Field element is found at the OGRVRTLayer level + + + + + + + + + + + + + + + + + + + + + + + + + + Used if encoding = "WKT", "WKB" or "Shape" to find + the attribute field of the source layer. + Used also in multiple geometry fields scenario to retrieve the + source geometry field matching the target VRT geometry field. + + + + + + + + + + + + Defaults to FALSE. + + + + + + + + + A valid WKT for a POLYGON + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + May be repeated + + + + + May be repeated + + + + + May be repeated + + + + + + Use GeometryField.GeometryType for multi-geometry field support. + + + + + Use GeometryField.SRS for multi-geometry field support. + + + + + Defaults to Union if no Field or GeometryField element is specified. + + + + + May be repeated + + + + + May be repeated + + + + + Defaults to FALSE. + + + + + Name of fields in which to place the name of the source layer of each feature. + + + + + + Use GeometryField.ExtentXMin, etc. for multi-geometry field support. + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/osmconf.ini b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/osmconf.ini new file mode 100644 index 00000000..d44029f3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/osmconf.ini @@ -0,0 +1,134 @@ +# +# Configuration file for importing OSM data into OGR +# +# NOTE: remove the below "[general]" line for GDAL < 3.10 +[general] + +# put here the name of keys, or key=value, for ways that are assumed to be polygons if they are closed +# see http://wiki.openstreetmap.org/wiki/Map_Features +closed_ways_are_polygons=aeroway,amenity,boundary,building,craft,geological,historic,landuse,leisure,military,natural,office,place,shop,sport,tourism,highway=platform,public_transport=platform + +# Uncomment to avoid laundering of keys ( ':' turned into '_' ) +#attribute_name_laundering=no + +# Some tags, set on ways and when building multipolygons, multilinestrings or other_relations, +# are normally filtered out early, independent of the 'ignore' configuration below. +# Uncomment to disable early filtering. The 'ignore' lines below remain active. +#report_all_tags=yes + +# uncomment to report all nodes, including the ones without any (significant) tag +#report_all_nodes=yes + +# uncomment to report all ways, including the ones without any (significant) tag +#report_all_ways=yes + +# uncomment to specify the the format for the all_tags/other_tags field should be JSON +# instead of the default HSTORE formatting. +# Valid values for tags_format are "hstore" and "json" +#tags_format=json + +[points] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,barrier,highway,ref,address,is_in,place,man_made +# keys that, alone, are not significant enough to report a node as a OGR point +unsignificant=created_by,converted_by,source,time,ele,attribution +# keys that should NOT be reported in the "other_tags" field +ignore=created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +[lines] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,highway,waterway,aerialway,barrier,man_made,railway + +# type of attribute 'foo' can be changed with something like +#foo_type=Integer/Real/String/DateTime + +# keys that should NOT be reported in the "other_tags" field +ignore=created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +#computed_attributes must appear before the keywords _type and _sql +computed_attributes=z_order +z_order_type=Integer +# Formula based on https://github.com/openstreetmap/osm2pgsql/blob/master/style.lua#L13 +# [foo] is substituted by value of tag foo. When substitution is not wished, the [ character can be escaped with \[ in literals +# Note for GDAL developers: if we change the below formula, make sure to edit ogrosmlayer.cpp since it has a hardcoded optimization for this very precise formula +z_order_sql="SELECT (CASE [highway] WHEN 'minor' THEN 3 WHEN 'road' THEN 3 WHEN 'unclassified' THEN 3 WHEN 'residential' THEN 3 WHEN 'tertiary_link' THEN 4 WHEN 'tertiary' THEN 4 WHEN 'secondary_link' THEN 6 WHEN 'secondary' THEN 6 WHEN 'primary_link' THEN 7 WHEN 'primary' THEN 7 WHEN 'trunk_link' THEN 8 WHEN 'trunk' THEN 8 WHEN 'motorway_link' THEN 9 WHEN 'motorway' THEN 9 ELSE 0 END) + (CASE WHEN [bridge] IN ('yes', 'true', '1') THEN 10 ELSE 0 END) + (CASE WHEN [tunnel] IN ('yes', 'true', '1') THEN -10 ELSE 0 END) + (CASE WHEN [railway] IS NOT NULL THEN 5 ELSE 0 END) + (CASE WHEN [layer] IS NOT NULL THEN 10 * CAST([layer] AS INTEGER) ELSE 0 END)" + +[multipolygons] +# common attributes +# note: for multipolygons, osm_id=yes instantiates a osm_id field for the id of relations +# and a osm_way_id field for the id of closed ways. Both fields are exclusively set. +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,type,aeroway,amenity,admin_level,barrier,boundary,building,craft,geological,historic,land_area,landuse,leisure,man_made,military,natural,office,place,shop,sport,tourism +# keys that should NOT be reported in the "other_tags" field +ignore=area,created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +[multilinestrings] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,type +# keys that should NOT be reported in the "other_tags" field +ignore=area,created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +[other_relations] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,type +# keys that should NOT be reported in the "other_tags" field +ignore=area,created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv new file mode 100644 index 00000000..13676d16 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv @@ -0,0 +1,131 @@ +NAME,EPSG_DATUM_CODE,ELLIPSOID_CODE,DELTAX,DELTAY,DELTAZ +# +# Note : We have permission from Des Newman on behalf of OziExplorer to use this list. +# See : http://trac.osgeo.org/gdal/ticket/3929#comment:2 +# Note 2: EPSG_DATUM_CODE is used in priority to retrieve ellipsoid and datum shift values +# from the CSV files imported from EPSG database, that are more up-to-date. It +# overrides the values found in this file and from ozi_ellips.csv. See #3929 for more details. +# +Adindan,4201,5,-162,-12,206 # Africa - Eritrea, Ethiopia and Sudan +Afgooye,4205,15,-43,-163,45 # Somalia +Ain el Abd 1970,4204,14,-150,-251,-2 # Asia - Middle East - Bahrain, Kuwait and Saudi Arabia +Anna 1 Astro 1965,4708,2,-491,-22,435 # Cocos (Keeling) Islands +Arc 1950,4209,5,-143,-90,-294 # Africa - Botswana, Malawi, Zambia, Zimbabwe +Arc 1960,4210,5,-160,-8,-300 # Africa - Kenya, Tanzania and Uganda +Ascension Island 1958,4712,14,-207,107,52 # St Helena - Ascension Island +Astro B4 Sorol Atoll,4707,14,114,-116,-333 # USA - Hawaii - Tern Island and Sorel Atoll +Astro Beacon 1945,4709,14,145,75,-272 # Japan - Iwo Jima +Astro DOS 71/4,4710,14,-320,550,-494 # St Helena - St Helena Island +Astronomic Stn 1952,4711,14,124,-234,-25 # Japan - Minamitori-shima (Marcus Island) +Australian Geodetic 1966,4202,2,-133,-48,148 # Australasia - Australia and PNG - AGD66 +Australian Geodetic 1984,4203,2,-134,-48,149 # Australia - AGD84 +Australian Geocentric 1994 (GDA94),4283,11,0,0,0 # Australia - GDA94 +Austrian,4312,3,594,84,471 # MGI - Europe, Austria and former Yugoslavia +Bellevue (IGN),4714,14,-127,-769,472 # Vanuatu - southern islands +Bermuda 1957,4216,4,-73,213,296 # Bermuda +Bogota Observatory,4218,14,307,304,-318 # Colombia +Campo Inchauspe,4221,14,-148,136,90 # Argentina +Canton Astro 1966,4716,14,298,-304,-375 # Kiribati - Phoenix Islands +Cape,4222,5,-136,-108,-292 # Africa - Botswana and South Africa +Cape Canaveral,4717,4,-2,150,181 # North America - Bahamas and USA - Florida +Carthage,4223,5,-263,6,431 # Tunisia +CH-1903,4149,3,674,15,405 # Europe - Liechtenstein and Switzerland +Chatham 1971,4672,14,175,-38,113 # New Zealand - Chatham Islands +Chua Astro,4224,14,-134,229,-29 # South America - Brazil ; N Paraguay +Corrego Alegre,4225,14,-206,172,-6 # Brazil - Corrego Alegre +Djakarta (Batavia),4211,3,-377,681,-50 # Indonesia - Java +DOS 1968,,14,230,-199,-752 # Solomon Islands - Gizo Island : EPSG:4718 + EPSG:15805 (gcs.csv uses EPSG:15807) +Easter Island 1967,4719,14,211,147,111 # Chile - Easter Island +Egypt,,14,-130,-117,-151 # Egypt - EPSG code is 4199, but transformation parameters are missing in gcs.csv +European 1950,4230,14,-87,-98,-121 # Europe +European 1950 (Mean France),,14,-87,-96,-120 # Europe -France +European 1950 (Spain and Portugal),,14,-84,-107,-120 # Europe - Spain and Portugal +European 1979,4668,14,-86,-98,-119 # Europe - west +Finland Hayford,4123,14,-78,-231,-97 # Finland (KKJ) +Gandajika Base,4233,14,-133,-321,50 # Maldives +Geodetic Datum 1949,4272,14,84,-22,209 # New Zealand (NZGD49) +GGRS 87,4121,11,-199.87,74.79,246.62 # Greece +Guam 1963,4675,4,-100,-248,259 # Guam +GUX 1 Astro,4718,14,252,-209,-751 # Solomon Islands - Guadalcanal Island +Hartebeeshoek94,4148,20,0,0,0 # South Africa +Hermannskogel,3906,3,653,-212,449 # Boznia and Herzegovina; Croatia; FYR Macedonia; Montenegro; Serbia; Slovenia (MGI 1901) +Hjorsey 1955,4658,14,-73,46,-86 # Iceland +Hong Kong 1963,4739,14,-156,-271,-189 # China - Hong Kong +Hu-Tzu-Shan,4236,14,-634,-549,-201 # Taiwan +Indian Bangladesh,4682,6,289,734,257 # Bangladesh (Gulshan 303) +Indian Thailand,4240,6,214,836,303 # Thailand +Israeli,4281,23,-235,-85,264 # Asia - Middle East - Israel, Jordan and Palestine Territory (Palestine 1923) +Ireland 1965,4299,1,506,-122,611 # Europe - Ireland (Republic and Ulster) +ISTS 073 Astro 1969,4724,14,208,-435,-229 # British Indian Ocean Territory - Diego Garcia +Johnston Island,4725,14,191,-77,-204 # Johnston Island +Kandawala,4244,6,-97,787,86 # Sri Lanka +Kerguelen Island,4698,14,145,-187,103 # French Southern Territories - Kerguelen +Kertau 1948,4245,7,-11,851,5 # Asia - Malaysia (west) and Singapore +L.C. 5 Astro,4726,4,42,124,147 # Cayman Islands - Little Cayman and Cayman Brac +Liberia 1964,4251,5,-90,40,88 # Liberia +Luzon Mindanao,,4,-133,-79,-72 # Philippines - Mindanao (EPSG:4253 + EPSG:1162 Coordinate Transformation) +Luzon Philippines,4253,4,-133,-77,-51 # Philippines - excluding Mindanao +Mahe 1971,4256,5,41,-220,-134 # Seychelles +Marco Astro,4616,14,-289,-124,60 # Portugal - Selvagens islands (Madeira) +Massawa,4262,3,639,405,60 # Eritrea +Merchich,4261,5,31,146,47 # Morocco +Midway Astro 1961,4727,14,912,-58,1227 # Midway Islands - Sand and Eastern Islands +Minna,4263,5,-92,-93,122 # Nigeria +NAD27 Alaska,,4,-5,135,172 # Alaska (EPSG:4269 + EPSG:1176 Coordinate Transformation) +NAD27 Bahamas,,4,-4,154,178 # Bahamas (EPSG:4269 + EPSG:1177 Coordinate Transformation) +NAD27 Canada,,4,-10,158,187 # Canada (EPSG:4269 + EPSG:1172 Coordinate Transformation) +NAD27 Canal Zone,,4,0,125,201 # Panama (EPSG:4269 + EPSG:1184 Coordinate Transformation) +NAD27 Caribbean,,4,-7,152,178 # Caribbean +NAD27 Central,,4,0,125,194 # Central America (EPSG:4269 + EPSG:1171 Coordinate Transformation) +NAD27 CONUS,,4,-8,160,176 # Continental US (EPSG:4269 + EPSG:1173 Coordinate Transformation) +NAD27 Cuba,,4,-9,152,178 # Cuba (EPSG:4269 + EPSG:1185 Coordinate Transformation) +NAD27 Greenland,,4,11,114,195 # Greenland - Hayes Peninsula (EPSG:4269 + EPSG:1186 Coordinate Transformation) +NAD27 Mexico,,4,-12,130,190 # Mexico (EPSG:4269 + EPSG:1187 Coordinate Transformation) +NAD27 San Salvador,,4,1,140,165 # San Salvador (EPSG:4269 + EPSG:1178 Coordinate Transformation) +NAD83,4269,11,0,0,0 # North America +Nahrwn Masirah Ilnd,,5,-247,-148,369 # Oman - Masirah Island (EPSG:4270 + EPSG:1189) +Nahrwn Saudi Arbia,,5,-231,-196,482 # Saudi Arabia (EPSG:4270 + EPSG:1190) +Nahrwn United Arab,,5,-249,-156,381 # United Arab Emirates (UAE) (EPSG:4270 + EPSG:1191) +Naparima BWI,4271,14,-2,374,172 # Trinidad and Tobago - Tobago +NGO1948,4273,27,315,-217,528 # Norway +NTF France,4275,24,-168,-60,320 # France +Norsk,4817,27,278,93,474 # Norway (NGO 1948) +NZGD1949,4272,14,84,-22,209 # New Zealand +NZGD2000,4167,20,0,0,0 # New Zealand +Observatorio 1966,4182,14,-425,-169,81 # Portugal - western Azores +Old Egyptian,4229,12,-130,110,-13 # Egypt (1907) +Old Hawaiian,4135,4,61,-285,-181 # USA - Hawaii +Oman,4232,5,-346,-1,224 # Oman +Ord Srvy Grt Britn,4277,0,375,-111,431 # UK - Great Britain; Isle of Man +Pico De Las Nieves,4728,14,-307,-92,127 # Spain - Canary Islands +Pitcairn Astro 1967,4729,14,185,165,42 # Pitcairn Island +Potsdam Rauenberg DHDN,4314,3,606,23,413 # Germany +Prov So Amrican 1956,4248,14,-288,175,-376 # South America - PSAD56 +Prov So Chilean 1963,4254,14,16,196,93 # South America - Tierra del Fuego +Puerto Rico,4139,4,11,72,-101 # Caribbean - Puerto Rico and the Virgin Islands +Pulkovo 1942 (1),4284,15,28,-130,-95 # Europe - FSU +Pulkovo 1942 (2),4284,15,28,-130,-95 # Europe - FSU +Qatar National,4285,14,-128,-283,22 # Qatar +Qornoq,4287,14,164,138,-189 # Greenland +Reunion,4626,14,94,-948,-1262 # France - Reunion Island +Rijksdriehoeksmeting,4289,3,593,26,478 # Netherlands +Rome 1940,4806,14,-225,-65,9 # Italy - including San Marino and Vatican +RT 90,4124,3,498,-36,568 # Sweden +S42,4179,15,28,-121,-77 # Europe - eastern - S-42 +Santo (DOS),4730,14,170,42,84 # Vanuatu - northern islands +Sao Braz,4184,14,-203,141,53 # Portugal - eastern Azores +Sapper Hill 1943,4292,14,-355,16,74 # Falkland Islands +Schwarzeck,4293,21,616,97,-251 # Namibia +South American 1969,4291,16,-57,1,-41 # South America - SAD69 +South Asia,,8,7,-10,-26 # Singapore (unknown EPSG code) +Southeast Base,4615,14,-499,-249,314 # Porto Santo and Madeira Islands +Southwest Base,4183,14,-104,167,-38 # Faial, Graciosa, Pico, Sao Jorge and Terceira +Timbalai 1948,4298,6,-689,691,-46 # Asia - Brunei and East Malaysia +Tokyo,4301,3,-128,481,664 # Asia - Japan and Korea +Tristan Astro 1968,4734,14,-632,438,-609 # St Helena - Tristan da Cunha +Viti Levu 1916,4731,5,51,391,-36 # Fiji - Viti Levu +Wake-Eniwetok 1960,4732,13,101,52,-39 # Marshall Islands - Eniwetok, Kwajalein and Wake islands +WGS 72,4322,19,0,0,5 # World +WGS 84,4326,20,0,0,0 # World +Yacare,4309,14,-155,171,37 # Uruguay +Zanderij,4311,14,-265,120,-358 # Suriname diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv new file mode 100644 index 00000000..071e39e5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv @@ -0,0 +1,35 @@ +ELLIPSOID_CODE,NAME,A,INVF +# +# Note : We have permission from Des Newman on behalf of OziExplorer to use this list. +# See : http://trac.osgeo.org/gdal/ticket/3929#comment:2 +# +0,Airy 1830,6377563.396,299.3249646 +1,Modified Airy,6377340.189,299.3249646 +2,Australian National,6378160.0,298.25 +3,Bessel 1841,6377397.155,299.1528128 +4,Clarke 1866,6378206.4,294.9786982 +5,Clarke 1880,6378249.145,293.465 +6,Everest (India 1830),6377276.345,300.8017 +7,Everest (1948),6377304.063,300.8017 +8,Modified Fischer 1960,6378155.0,298.3 +9,Everest (Pakistan),6377309.613,300.8017 +10,Indonesian 1974,6378160.0,298.247 +11,GRS 80,6378137.0,298.257222101 +12,Helmert 1906,6378200.0,298.3 +13,Hough 1960,6378270.0,297.0 +14,International 1924,6378388.0,297.0 +15,Krassovsky 1940,6378245.0,298.3 +16,South American 1969,6378160.0,298.25 +17,Everest (Malaysia 1969),6377295.664,300.8017 +18,Everest (Sabah Sarawak),6377298.556,300.8017 +19,WGS 72,6378135.0,298.26 +20,WGS 84,6378137.0,298.257223563 +21,Bessel 1841 (Namibia),6377483.865,299.1528128 +22,Everest (India 1956),6377301.243,300.8017 +23,Clarke 1880 Palestine,6378300.789,293.466 +24,Clarke 1880 IGN,6378249.2,293.466021 +25,Hayford 1909,6378388.0,296.959263 +26,Clarke 1858,6378350.87,294.26 +27,Bessel 1841 (Norway),6377492.0176,299.1528 +28,Plessis 1817 (France),6376523.0,308.6409971 +29,Hayford 1924,6378388.0,297.0 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_datum.txt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_datum.txt new file mode 100644 index 00000000..68507ea0 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_datum.txt @@ -0,0 +1,530 @@ +! +! From https://github.com/OSGeo/gdal/issues/8034, June 30, 2023 +! +! I, Michael Goldberg, on behalf of PCI Geomatics agree to allow the ellips.txt +! and datum.txt file to be distributed under the GDAL open source license. +! +! Michael Goldberg +! Development Manager +! PCI Geomatics +! +! +! NOTE: The range of "D950" to "D998" is set aside for +! the use of local customer development. +! +! And the range of "D-90" to "D-98" is set aside for +! the use of local customer development. +! +!For datums using a grid shift file entries are: +!DatumNumber,DatumName,EllipsoidNumber,Location,GridShiftTo,GridShiftFile,GridShiftFile +!If GridShiftTo is negative the shift is reversed +!For datums not using a grid shift file converting to WGS84 using coordinate frame rotation +! (EPSG:9607 which is opposite rotation to EPSG TOWGS84) entries are: +!DatumNumber,DatumName,EllipsoidNumber,XOffset,YOffset,ZOffset,Location,XSigma,YSigma,ZSigma,Doppler,XRotate,YRotate,ZRotate,Scale +"DoD World Geodetic System 1984, DMA TR 8350.2" +"4 JUL 1997, Third Printing, Includes 3 JAN 2000 Updates" +"D-01","NAD27 (USA, NADCON)","E000","Conterminous U.S.","D122","conus.los","conus.las" +"D-02","NAD83 (Deprecated - use D122)","E008",0,0,0,"Conterminous U.S.",2,2,2,354 +"D-03","NAD27 (Canada, NTv1)","E000","Canada","D122","grid.dac" +"D-04","NAD83 (Deprecated - use D122)","E008",0,0,0,"Canada",2,2,2,354 +"D-07","NAD27 (USA, NADCON)","E000","Alaska","D122","alaska.los","alaska.las" +"D-08","NAD83 (Deprecated - use D122)","E008",0,0,0,"Alaska",2,2,2,354 +"D-09","NAD27 (USA, NADCON)","E000","St. George","D122","stgeorge.los","stgeorge.las" +"D-10","NAD83 (Deprecated - use D122)","E008",0,0,0,"St. George",2,2,2,354 +"D-11","NAD27 (USA, NADCON)","E000","St. Lawrence","D122","stlrnc.los","stlrnc.las" +"D-12","NAD83 (Deprecated - use D122)","E008",0,0,0,"St. Lawrence",2,2,2,354 +"D-13","NAD27 (USA, NADCON)","E000","St. Paul","D122","stpaul.los","stpaul.las" +"D-14","NAD83 (Deprecated - use D122)","E008",0,0,0,"St. Paul",2,2,2,354 +"D-15","Old Hawaiian (USA, NADCON)","E000","Hawaii","D122","hawaii.los","hawaii.las" +"D-16","NAD83 (Deprecated - use D122)","E008",0,0,0,"Hawaii",2,2,2,354 +"D-17","NAD27 (USA, NADCON)","E000","Puerto Rico Virgin Islands","D122","prvi.los","prvi.las" +"D-18","NAD83 (Deprecated - use D122)","E008",0,0,0,"Puerto Rico Virgin Islands",2,2,2,354 +"D-21","GDA94 (from AGD66, NTv2)","E008","Australia","D029","A66_National_13_09_01_.gsb" +"D-22","GDA94 (from AGD84, NTv2)","E008","Australia","D030","National_84_02.07.01.gsb" +"D-24","NZGD2000 (NTv2)","E008","New Zealand","D510","nzgd2kgrid0005.gsb" +"D-25","GDA2020 (conformal, from GDA94, NTv2)","E008","Australia","D536","GDA94_GDA2020_conformal.gsb" +"D-26","GDA2020 (conformal and distortion, from GDA94, NTv2)","E008","Australia","D536","GDA94_GDA2020_conformal_and_distortion.gsb" +"D-27","GDA2020 (conformal, from GDA94, NTv2)","E008","Australia (Christmas Island)","D536","GDA94_GDA2020_conformal_christmas_island.gsb" +"D-28","GDA2020 (conformal, from GDA94, NTv2)","E008","Australia (Cocos Islands)","D536","GDA94_GDA2020_conformal_cocos_island.gsb" +"D-55","NAD83 (CSRS 2002) (NTv2)","E008","British Columbia","D122","BC_93_05.gsb" +"D-56","NAD27 (NTv2)","E000","British Columbia","-D-55","BC_27_05.gsb" +"D-57","NAD83 (CSRS) (NTv2)","E008","BC (CRD)","D122","CRD93_00.gsb" +"D-58","NAD27 (NTv2)","E000","BC (CRD)","-D-57","CRD27_00.gsb" +"D-59","NAD83 (CSRS) (NTv2)","E008","BC (Vancouver Island)","D122","NVI93_05.gsb" +"D-62","NAD27 (NTv2)","E000","Ontario (Toronto)","-D-65","TO27CSv1.gsb" +"D-63","NAD27 (NTv2)","E000","Ontario","-D-65","ON27CSv1.gsb" +"D-64","NAD27 (1976) (NTv2)","E000","Ontario","-D-65","ON76CSv1.gsb" +"D-65","NAD83 (CSRS98) (NTv2)","E008","Ontario","D122","ON83CSv1.gsb" +"D-67","NAD83 (SCRS) (NTv2)","E008","Quebec","D-68","na27scrs.gsb" +"D-68","NAD27 (NTv2)","E000","Quebec","-D122","na27na83.gsb" +"D-71","NAD83 (SCRS) (NTv2)","E008","Quebec","D-72","cq77scrs.gsb" +"D-72","NAD27 (CGQ77) (NTv2)","E000","Quebec","D122","cq77na83.gsb" +"D-75","NAD83 (SCRS) (NTv2)","E008","Quebec","D122","na83scrs.gsb" +"D-76","NAD27 (NTv2)","E000","Saskatchewan","-D-79","sk27-98.gsb" +"D-77","NAD27 (NTv2)","E000","Saskatchewan","-D122","sk27-83.gsb" +"D-79","NAD83 (CSRS98) (NTv2)","E008","Saskatchewan","-D122","sk83-98.gsb" +"D-81","NAD83 (CSRS98) (NTv2)","E008","Nova Scotia","D895","ns778301.gsb" +"D-82","ATS77 (NTv2)","E910","Nova Scotia","-D122","GS7783.GSB" +"D-83","NAD83 (CSRS98) (NTv2)","E008","Prince Edward Island","D895","pe7783v2.gsb" +"D-84","NAD83 (CSRS98) (NTv2)","E008","New Brunswick","D122","nb2783v2.gsb" +"D-85","NAD83 (CSRS98) (NTv2)","E008","New Brunswick","D895","nb7783v2.gsb" +"D-86","NAD27 (NTv2)","E000","Canada","-D122","ntv2_0.gsb" +"D-87","NAD83 (CSRS98) (NTv2)","E008","Alberta","D122","ABCSRSV4.DAC" +"D-88","NAD27 (1976) (NTv2)","E000","Ontario","D122","may76v20.gsb" +"D800","Normal Sphere","E019",0,0,0,"",0,0,0,0 +"D000","WGS 1984","E012",0,0,0,"Global Definition",0,0,0,0 +"D001","WGS 1972","E005",0,0,0,"Global Definition",3,3,3,1 +"D002","Adindan","E001",-166,-15,204,"MEAN FOR Ethiopia, Sudan",5,5,3,22 +"D003","Adindan","E001",-118,-14,218,"Burkina Faso",25,25,25,1 +"D004","Adindan","E001",-134,-2,210,"Cameroon",25,25,25,1 +"D005","Adindan","E001",-165,-11,206,"Ethiopia",3,3,3,8 +"D006","Adindan","E001",-123,-20,220,"Mali",25,25,25,1 +"D007","Adindan","E001",-128,-18,224,"Senegal",25,25,25,2 +"D008","Adindan","E001",-161,-14,205,"Sudan",3,5,3,14 +"D009","Afgooye","E015",-43,-163,45,"Somalia",25,25,25,1 +"D010","Ain el Abd 1970","E004",-150,-250,-1,"Bahrain",25,25,25,2 +"D011","Ain el Abd 1970","E004",-143,-236,7,"Saudi Arabia",10,10,10,9 +"D012","Anna 1 Astro 1965","E014",-491,-22,435,"Cocos Islands",25,25,25,1 +"D013","Antigua Island Astro 1943","E001",-270,13,62,"Antigua (Leeward Islands)",25,25,25,1 +"D014","Arc 1950","E001",-143,-90,-294,"MEAN Solution",20,33,20,41 +"D015","Arc 1950","E001",-138,-105,-289,"Botswana",3,5,3,9 +"D016","Arc 1950","E001",-153,-5,-292,"Burundi",20,20,20,3 +"D017","Arc 1950","E001",-125,-108,-295,"Lesotho",3,3,8,5 +"D018","Arc 1950","E001",-161,-73,-317,"Malawi",9,24,8,6 +"D019","Arc 1950","E001",-134,-105,-295,"Swaziland",15,15,15,4 +"D020","Arc 1950","E001",-169,-19,-278,"Zaire",25,25,25,2 +"D021","Arc 1950","E001",-147,-74,-283,"Zambia",21,21,27,5 +"D022","Arc 1950","E001",-142,-96,-293,"Zimbabwe",5,8,11,10 +"D023","Arc 1960","E001",-160,-6,-302,"MEAN FOR Kenya, Tanzania",20,20,20,25 +"D024","Ascension Island 1958","E004",-205,107,53,"Ascension Island",25,25,25,2 +"D025","Astro Beacon E 1945","E004",145,75,-272,"Iwo Jima",25,25,25,1 +"D026","Astro DOS 71/4","E004",-320,550,-494,"St Helena Island",25,25,25,1 +"D027","Astro Tern Island (FRIG) 1961","E004",114,-116,-333,"Tern Island",25,25,25,1 +"D028","Astronomical Station 1952","E004",124,-234,-25,"Marcus Island",25,25,25,1 +"D029","Australian Geodetic 1966","E014",-133,-48,148,"Australia & Tasmania",3,3,3,105 +"D030","Australian Geodetic 1984","E014",-134,-48,149,"Australia & Tasmania",2,2,2,90 +"D031","Ayabelle Lighthouse","E001",-79,-129,145,"Djibouti",25,25,25,1 +"D032","Bellevue (IGN)","E004",-127,-769,472,"Efate & Erromango Islands",20,20,20,3 +"D033","Bermuda 1957","E000",-73,213,296,"Bermuda",20,20,20,3 +"D034","Bissau","E004",-173,253,27,"Guinea-Bissau",25,25,25,2 +"D035","Bogota Observatory","E004",307,304,-318,"Colombia",6,5,6,7 +"D036","Bukit Rimpah","E002",-384,664,-48,"Indonesia (Bangka & Belitung Islands)",-1,-1,-1,0 +"D037","Camp Area Astro","E004",-104,-129,239,"Antarctica (McMurdo Camp Area)",-1,-1,-1,0 +"D038","Campo Inchauspe 1969","E004",-148,136,90,"Argentina",5,5,5,20 +"D039","Canton Astro 1966","E004",298,-304,-375,"Phoenix Islands",15,15,15,4 +"D040","Cape (Superceded by D517)","E001",-136,-108,-292,"South Africa",3,6,6,5 +"D041","Cape Canaveral","E000",-2,151,181,"MEAN FOR Florida,Bahamas",3,3,3,19 +"D042","Carthage","E001",-263,6,431,"Tunisia",6,9,8,5 +"D043","Chatham Island Astro 1971","E004",175,-38,113,"New Zealand (Chatham Island)",15,15,15,4 +"D044","Chua Astro","E004",-134,229,-29,"Paraguay",6,9,5,6 +"D045","Corrego Alegre","E004",-206,172,-6,"Brazil",5,3,5,17 +"D046","Dabola","E001",-83,37,124,"Guinea",15,15,15,4 +"D047","Djakarta (Batavia)","E002",-377,681,-50,"Indonesia (Sumatra)",3,3,3,5 +"D048","DOS 1968","E004",230,-199,-752,"New Georgia Islands (Gizo Island)",25,25,25,1 +"D049","Easter Island 1967","E004",211,147,111,"Easter Island",25,25,25,1 +"D050","European 1950","E004",-87,-98,-121,"MEAN FOR Europe,",3,8,5,85 +"D051","European 1950","E004",-87,-96,-120,"MEAN FOR Western Europe,",3,3,3,52 +"D052","European 1950","E004",-103,-106,-141,"MEAN FOR Iraq, Israel, Jordan, Lebanon",-1,-1,-1,0 +"D053","European 1950","E004",-104,-101,-140,"Cyprus",15,15,15,4 +"D054","European 1950","E004",-130,-117,-151,"Egypt",6,8,8,14 +"D055","European 1950","E004",-86,-96,-120,"MEAN FOR England, Channel Islands, Ireland",3,3,3,40 +"D056","European 1950","E004",-87,-95,-120,"Finland, Norway",3,5,3,20 +"D057","European 1950","E004",-84,-95,-130,"Greece",25,25,25,2 +"D058","European 1950","E004",-117,-132,-164,"Iran",9,12,11,27 +"D059","European 1950","E004",-97,-103,-120,"Italy (Sardinia)",25,25,25,2 +"D060","European 1950","E004",-97,-88,-135,"Italy (Sicily)",20,20,20,3 +"D061","European 1950","E004",-107,-88,-149,"Malta",25,25,25,1 +"D062","European 1950","E004",-84,-107,-120,"Portugal, Spain",5,6,3,18 +"D063","European 1979","E004",-86,-98,-119,"MEAN Solution",3,3,3,22 +"D064","Fort Thomas 1955","E001",-7,215,225,"Nevis, St. Kitts (Leeward Islands)",25,25,25,2 +"D065","Gan 1970","E004",-133,-321,50,"Republic of Maldives",25,25,25,1 +"D066","Geodetic Datum 1949","E004",84,-22,209,"New Zealand",5,3,5,14 +"D067","Graciosa Base SW 1948","E004",-104,167,-38,"Azores (Faial,Graciosa,Pico)",3,3,3,5 +"D068","Guam 1963","E000",-100,-248,259,"Guam",3,3,3,5 +"D069","Gunung Segara","E002",-403,684,41,"Indonesia (Kalimantan)",-1,-1,-1,0 +"D070","GUX 1 Astro","E004",252,-209,-751,"Guadalcanal Island",25,25,25,1 +"D071","Herat North","E004",-333,-222,114,"Afghanistan",-1,-1,-1,0 +"D072","Hjorsey 1955","E004",-73,46,-86,"Iceland",3,3,6,6 +"D073","Hong Kong 1963","E004",-156,-271,-189,"Hong Kong",25,25,25,2 +"D074","Hu-Tzu-Shan","E004",-637,-549,-203,"Taiwan",15,15,15,4 +"D075","Indian","E006",282,726,254,"Bangladesh",10,8,12,6 +"D076","Indian","E901",295,736,257,"India, Nepal",12,10,15,7 +"D077","Indian 1954","E006",217,823,299,"Thailand",15,6,12,11 +"D078","Indian 1975 (Cycle 1)","E006",210,814,289,"Thailand",3,2,3,62 +"D079","Ireland 1965","E011",506,-122,611,"Ireland",3,3,3,7 +"D080","ISTS 061 Astro 1968","E004",-794,119,-298,"South Georgia Islands",25,25,25,1 +"D081","ISTS 073 Astro 1969","E004",208,-435,-229,"Diego Garcia",25,25,25,2 +"D082","Johnston Island 1961","E004",189,-79,-202,"Johnston Island",25,25,25,1 +"D083","Kandawala","E006",-97,787,86,"Sri Lanka",20,20,20,3 +"D084","Kerguelen Island 1949","E004",145,-187,103,"Kerguelen Island",25,25,25,1 +"D085","Kertau 1948","E010",-11,851,5,"West Malaysia & Singapore",10,8,6,6 +"D086","Kusaie Astro 1951","E004",647,1777,-1124,"Caroline Islands",25,25,25,1 +"D087","L. C. 5 Astro 1961","E000",42,124,147,"Cayman Brac Island",25,25,25,1 +"D088","Leigon","E001",-130,29,364,"Ghana",2,3,2,8 +"D089","Liberia 1964","E001",-90,40,88,"Liberia",15,15,15,4 +"D090","Luzon","E000",-133,-77,-51,"Philippines (Excluding Mindanao)",8,11,9,6 +"D091","Luzon","E000",-133,-79,-72,"Philippines (Mindanao)",25,25,25,1 +"D092","Mahe 1971","E001",41,-220,-134,"Mahe Island",25,25,25,1 +"D093","Massawa","E002",639,405,60,"Ethiopia (Eritrea)",25,25,25,1 +"D094","Merchich","E001",31,146,47,"Morocco",5,3,3,9 +"D095","Midway Astro 1961","E004",912,-58,1227,"Midway Islands",25,25,25,1 +"D096","Minna","E001",-81,-84,115,"Cameroon",25,25,25,2 +"D097","Minna","E001",-92,-93,122,"Nigeria",3,6,5,6 +"D098","Montserrat Island Astro 1958","E001",174,359,365,"Montserrat (Leeward Islands)",25,25,25,1 +"D099","M'Poraloko","E001",-74,-130,42,"Gabon",25,25,25,1 +"D100","Nahrwan","E001",-247,-148,369,"Oman (Masirah Island)",25,25,25,2 +"D101","Nahrwan","E001",-243,-192,477,"Saudi Arabia",20,20,20,3 +"D102","Nahrwan","E001",-249,-156,381,"United Arab Emirates",25,25,25,2 +"D103","Naparima BWI","E004",-10,375,165,"Trinidad & Tobago",15,15,15,4 +"D104","North American 1927","E000",-3,142,183,"MEAN FOR Caribbean",3,9,12,15 +"D105","North American 1927","E000",0,125,194,"MEAN FOR Central America",8,3,5,19 +"D106","North American 1927","E000",-10,158,187,"MEAN FOR Canada",15,11,6,112 +"D107","North American 1927","E000",-8,160,176,"MEAN FOR CONUS",5,5,6,405 +"D108","North American 1927","E000",-9,161,179,"MEAN FOR CONUS (East of Mississippi River)",5,5,8,129 +"D109","North American 1927","E000",-8,159,175,"MEAN FOR CONUS (West of Mississippi River)",5,3,3,276 +"D110","North American 1927","E000",-5,135,172,"Alaska",5,9,5,47 +"D111","North American 1927","E000",-4,154,178,"Bahamas (Except San Salvador Island)",5,3,5,11 +"D112","North American 1927","E000",1,140,165,"Bahamas (San Salvador Island)",25,25,25,1 +"D113","North American 1927","E000",-7,162,188,"Canada (Alberta, British Columbia)",8,8,6,25 +"D114","North American 1927","E000",-9,157,184,"Canada (Manitoba, Ontario)",9,5,5,25 +"D115","North American 1927","E000",-22,160,190,"Canada (Atlantic Provinces)",6,6,3,37 +"D116","North American 1927","E000",4,159,188,"Canada (Northwest Territories, Saskatchewan)",5,5,3,17 +"D117","North American 1927","E000",-7,139,181,"Canada (Yukon)",5,8,3,8 +"D118","North American 1927","E000",0,125,201,"Canal Zone",20,20,20,3 +"D119","North American 1927","E000",-9,152,178,"Cuba",25,25,25,1 +"D120","North American 1927","E000",11,114,195,"Greenland (Hayes Peninsula)",25,25,25,2 +"D121","North American 1927","E000",-12,130,190,"Mexico",8,6,6,22 +"D122","North American 1983","E008",0,0,0,"Alaska, Canada, CONUS, Central America, Mexico",2,2,2,354 +"D123","Observatorio Metereo. 1939","E004",-425,-169,81,"Azores (Corvo & Flores Islands)",20,20,20,3 +"D124","Old Egyptian 1907","E904",-130,110,-13,"Egypt",3,6,8,14 +"D125","Old Hawaiian (Clarke 1866)","E000",61,-285,-181,"MEAN FOR Hawaii, Kauai, Maui, Oahu",25,20,20,15 +"D126","Old Hawaiian (Clarke 1866)","E000",89,-279,-183,"Hawaii",25,25,25,2 +"D127","Old Hawaiian (Clarke 1866)","E000",45,-290,-172,"Kauai",20,20,20,3 +"D128","Old Hawaiian (Clarke 1866)","E000",65,-290,-190,"Maui",25,25,25,2 +"D129","Old Hawaiian (Clarke 1866)","E000",58,-283,-182,"Oahu",10,6,6,8 +"D130","Oman","E001",-346,-1,224,"Oman",3,3,9,7 +"D131","Ord. Survey G. Britain 1936","E009",375,-111,431,"MEAN Solution",10,10,15,38 +"D132","Ord. Survey G. Britain 1936","E009",371,-112,434,"England",5,5,6,21 +"D133","Ord. Survey G. Britain 1936","E009",371,-111,434,"England, Isle of Man, Wales",10,10,15,25 +"D134","Ord. Survey G. Britain 1936","E009",384,-111,425,"Scotland, Shetland Islands",10,10,10,13 +"D135","Ord. Survey G. Britain 1936","E009",370,-108,434,"Wales",20,20,20,3 +"D136","Pico de las Nieves","E004",-307,-92,127,"Canary Islands",25,25,25,1 +"D137","Pitcairn Astro 1967","E004",185,165,42,"Pitcairn Island",25,25,25,1 +"D138","Point 58","E001",-106,-129,165,"MEAN FOR Burkina Faso & Niger",25,25,25,2 +"D139","Pointe Noire 1948","E001",-148,51,-291,"Congo",25,25,25,1 +"D140","Porto Santo 1936","E004",-499,-249,314,"Porto Santo, Madeira Islands",25,25,25,2 +"D141","Provisional S. American 1956","E004",-288,175,-376,"MEAN Solution",17,27,27,63 +"D142","Provisional S. American 1956","E004",-270,188,-388,"Bolivia",5,11,14,5 +"D143","Provisional S. American 1956","E004",-270,183,-390,"Chile (Northern, Near 19dS)",25,25,25,1 +"D144","Provisional S. American 1956","E004",-305,243,-442,"Chile (Southern, Near 43dS)",20,20,20,3 +"D145","Provisional S. American 1956","E004",-282,169,-371,"Colombia",15,15,15,4 +"D146","Provisional S. American 1956","E004",-278,171,-367,"Ecuador",3,5,3,11 +"D147","Provisional S. American 1956","E004",-298,159,-369,"Guyana",6,14,5,9 +"D148","Provisional S. American 1956","E004",-279,175,-379,"Peru",6,8,12,6 +"D149","Provisional S. American 1956","E004",-295,173,-371,"Venezuela",9,14,15,24 +"D150","Provisional S. Chilean 1963","E004",16,196,93,"Chile (South, Near 53dS) (Hito XVIII)",25,25,25,2 +"D151","Puerto Rico","E000",11,72,-101,"Puerto Rico, Virgin Islands",3,3,3,11 +"D152","Qatar National Datum 1995","E004",-127.78098,-283.37477,21.24081,"Qatar",20,20,20,3 +"D153","Qornoq","E004",164,138,-189,"Greenland (South)",25,25,32,2 +"D154","Reunion","E004",94,-948,-1262,"Mascarene Islands",25,25,25,1 +"D155","Rome 1940","E004",-225,-65,9,"Italy (Sardinia)",25,25,25,1 +"D156","Santo (DOS) 1965","E004",170,42,84,"Espirito Santo Island",25,25,25,1 +"D157","Sao Braz","E004",-203,141,53,"Azores (Sao Miguel, Santa Maria Islands)",25,25,25,2 +"D158","Sapper Hill 1943","E004",-355,21,72,"East Falkland Island",1,1,1,5 +"D159","Schwarzeck","E900",616,97,-251,"Namibia",20,20,20,3 +"D160","Selvagem Grande 1938","E004",-289,-124,60,"Salvage Islands",25,25,25,1 +"D161","SGS 85","E905",3,9,-9,"Soviet Geodetic System 1985",10,10,10,1 +"D162","South American 1969 (SAD69)","E907",-57,1,-41,"MEAN Solution,",15,6,9,84 +"D163","South American 1969","E907",-62,-1,-37,"Argentina",5,5,5,10 +"D164","South American 1969","E907",-61,2,-48,"Bolivia",15,15,15,4 +"D165","South American 1969 (old)","E907",-60,-2,-41,"Brazil",3,5,5,22 +"D166","South American 1969","E907",-75,-1,-44,"Chile",15,8,11,9 +"D167","South American 1969","E907",-44,6,-36,"Colombia",6,6,5,7 +"D168","South American 1969","E907",-48,3,-44,"Ecuador",3,3,3,11 +"D169","South American 1969","E907",-47,26,-42,"Ecuador (Baltra, Galapagos)",25,25,25,1 +"D170","South American 1969","E907",-53,3,-47,"Guyana",9,5,5,5 +"D171","South American 1969","E907",-61,2,-33,"Paraguay",15,15,15,4 +"D172","South American 1969","E907",-58,0,-44,"Peru",5,5,5,6 +"D173","South American 1969","E907",-45,12,-33,"Trinidad & Tobago",25,25,25,1 +"D174","South American 1969","E907",-45,8,-33,"Venezuela",3,6,3,5 +"D175","South Asia","E013",7,-10,-26,"Singapore",25,25,25,1 +"D176","Tananarive Observatory 1925","E004",-189,-242,-91,"Madagascar",-1,-1,-1,0 +"D177","Timbalai 1948","E903",-679,669,-48,"Brunei, East Malaysia (Sabah, Sarawak)",10,10,12,8 +"D178","Tokyo","E002",-148,507,685,"MEAN FOR Japan, Korea, Okinawa",20,5,20,31 +"D179","Tokyo","E002",-148,507,685,"Japan",8,5,8,16 +"D180","Tokyo (Cycle 1)","E002",-147,506,687,"South Korea",2,2,2,29 +"D181","Tokyo","E002",-158,507,676,"Okinawa",20,5,20,3 +"D182","Tristan Astro 1968","E004",-632,438,-609,"Tristan da Cunha",25,25,25,1 +"D183","Viti Levu 1916","E001",51,391,-36,"Fiji (Viti Levu Island)",25,25,25,1 +"D184","Wake-Eniwetok 1960","E016",102,52,-38,"Marshall Islands",3,3,3,10 +"D185","Wake Island Astro 1952","E004",276,-57,149,"Wake Atoll",25,25,25,2 +"D186","WGS 1972","E005",0,0,0,"Global Definition",3,3,3,1 +"D187","Yacare","E004",-155,171,37,"Uruguay",-1,-1,-1,0 +"D188","Zanderij","E004",-265,120,-358,"Suriname",5,5,8,5 +"D189","American Samoa 1962","E000",-115,118,426,"American Samoa Is",25,25,25,2 +"D190","Arc 1960","E001",-157,-2,-299,"Kenya",4,3,3,24 +"D191","Arc 1960","E001",-175,-23,-303,"Tanzania",6,9,10,12 +"D192","Coordinate System 1937 of Estonia","E002",374,150,588,"Estonia",2,2,3,19 +"D193","Deception Island","E001",260,12,-147,"Deception Is., Antarctica",20,20,20,3 +"D194","European 1950","E004",-112,-77,-145,"Tunisia",25,25,25,4 +"D195","Hermannskogel","E002",682,-203,480,"Yugoslavia (Pre 1990)",-1,-1,-1,0 +"D196","Indian","E201",283,682,231,"Pakistan",-1,-1,-1,0 +"D197","Indian 1960","E006",198,881,317,"Vietnam (near 16dN)",25,25,25,2 +"D198","Indian 1960","E006",182,915,344,"Con Son Island (Vietnam)",25,25,25,1 +"D199","Indonesian 1974","E200",-24,-15,5,"Indonesia",25,25,25,1 +"D200","North American 1927","E000",-2,152,149,"Aleutian Is (E of 180dW)",6,8,10,6 +"D201","North American 1927","E000",2,204,105,"Aleutian Is (W of 180dW)",10,8,10,5 +"D202","North Sahara 1959","E001",-186,-93,310,"Algeria",25,25,25,3 +"D203","Pulkovo 1942","E015",28,-130,-95,"Russia",-1,-1,-1,0 +"D204","S-42 (Pulkovo 1942)","E015",28,-121,-77,"Hungary",2,2,2,5 +"D205","S-42 (Pulkovo 1942)","E015",23,-124,-82,"Poland",4,2,4,11 +"D206","S-42 (Pulkovo 1942)","E015",26,-121,-78,"Czechoslovakia (Prior 1 Jan 1993)",3,3,2,6 +"D207","S-42 (Pulkovo 1942)","E015",24,-124,-82,"Latvia",2,2,2,5 +"D208","S-42 (Pulkovo 1942)","E015",15,-130,-84,"Kazakhstan",25,25,25,2 +"D209","S-42 (Pulkovo 1942)","E015",24,-130,-92,"Albania",3,3,3,7 +"D210","S-42 (Pulkovo 1942)","E015",28,-121,-77,"Romania",3,5,3,4 +"D211","S-JTSK","E002",589,76,480,"Czechoslovakia (1 Jan 1993 on)",4,2,3,6 +"D212","Sierra Leone 1960","E001",-88,4,101,"Sierra Leone",15,15,15,8 +"D213","Voirol 1874","E001",-73,-247,227,"Tunisia, Algeria",-1,-1,-1,0 +"D214","Voirol 1960","E001",-123,-206,219,"Algeria",25,25,25,2 +"D215","Indian 1975 (Cycle 0)","E006",209,818,290,"Thailand",12,10,12,6 +"D216","Korean Geodetic System 1995","E012",0,0,0,"South Korea",1,1,1,29 +"D217","Tokyo (Cycle 0)","E002",-146,507,687,"South Korea",8,5,8,12 +"D218","South American Geocentric Reference System (SIRGAS)","E008",0,0,0,"South America",1,1,1,66 +"D219","Old Hawaiian (Int 1924)","E004",201,-228,-346,"MEAN FOR Hawaii, Kauai, Maui, Oahu",25,20,20,15 +"D220","Old Hawaiian (Int 1924)","E004",229,-222,-348,"Hawaii",25,25,25,2 +"D221","Old Hawaiian (Int 1924)","E004",185,-233,-337,"Kauai",20,20,20,3 +"D222","Old Hawaiian (Int 1924)","E004",205,-233,-355,"Maui",25,25,25,2 +"D223","Old Hawaiian (Int 1924)","E004",198,-226,-347,"Oahu",10,6,6,8 +"D333","Tokyo Datum (Japan By Law)","E333",-147.54,507.26,680.47,"Japan",0,0,0,0 +"D334","Japanese Geodetic Datum 2000 (JGD2000)","E008",0.0,0.0,0.0,"Japan",0,0,0,0 +"D340","WGS 1972BE","E005",0,0,1.9,"Global Definition",3,3,3,1,-0,-0,-0.814,-0.38 +"D350","GRS 1980","E008",0.0,0.0,0.0,"Global Definition",0,0,0,0,0.0,0.0,0.0,1.0 +"D360","Pulkovo 1942","E015",27,-135,-84.5,"Russia",-1,-1,-1,0,-0.0,-0.0,-0.554,-0.2263 +"D400","Greece 1987","E008",-199.695,74.815,246.045,"Greece",0,0,0,0 +"D401","RT90 (Superceded by D403)","E002",-424,80,-613,"Sweden",0,0,0,0,-4.40,1.99,-5.18,1.0 +"D402","Indian 1960","E209",198,881,317,"India",0,0,0,0 +"D403","RT90 (Supercedes D401)","E002",414.1055246174,41.3265500042,603.0582474221,"Sweden",0,0,0,0,0.8551163377,-2.1413174055,7.0227298286,1.0 +"D450","ETRS89 (European Terrestrial Reference System 1989)","E008",0.0,0.0,0.0,"Europe",0,0,0,0 +"D500","Deutsches Hauptdreiecksnetz (DHDN), Potsdam (Rauenburg)","E002",580.0,80.9,395.3,"Germany",0,0,0,0,0.35,-0.10,3.58,1.00001112 +"D501","MGI (Militar-Geographische Institut) (Hermannskogel)","E002",575.0,93.0,466.0,"Austria",0,0,0,0,-5.1,-1.6,-5.2,1.0000025 +"D502","CH1903 (Superceded by D514)","E002",660.08,13.55,369.34,"Switzerland",0,0,0,0,0.805,0.578,0.952,1.00000566 +"D503","Belgian 72","E004",-99.059,53.322,-112.486,"Belgium",0,0,0,0,-0.419,0.830,-1.885,0.999999 +"D504","NTF (Nouvelle Triangulation Francaise)","E202",-166.817,-59.821,318.753,"France",0,0,0,0 +"D505","South American 1969 (new)","E907",-66.87,4.37,-38.52,"Brazil",0.43,0.44,0.40,0 +"D506","Rijksdriehoeks Datum","E002",565.04,49.91,465.84,"Netherlands",0,0,0,0,0.4094,-0.3597,1.8685,1.0000040772 +"D507","KKJ (Kartastokoordinaattijarjestelma)","E004",93.477,103.453,123.431,"Finland",0,0,0,0,4.801,0.345,-1.376,0.999998503 +"D508","Aratu (Brasil)","E004",-158,315,-148,"Brazil",2,3,2,0 +"D509","Hungarian Datum 1972 (HD-72)","E203",56.0,-75.77,-15.31,"Hungary",0,0,0,0,-0.37,-0.20,-0.21,1.00000101 +"D510","NZGD 1949 (7 terms)","E004",59.47,-5.04,187.44,"New Zealand",0,0,0,0,-0.47,0.10,-1.024,0.9999954007 +"D511","NZGD 1949 (3 terms)","E004",54.4,-20.1,183.1,"New Zealand",0,0,0,0 +"D512","NZGD 2000 (7 terms)","E008",0.0,0.0,0.0,"New Zealand",0,0,0,0,0.0,0.0,0.0,1.0 +"D513","NGO 1948","E206", 278.2932, 93.0497, 474.4745,"Norway",0,0,0,0, -7.8885, -0.0499, 6.6098, 6.2050 +"D514","CH1903+ (Supercedes D502)","E002",674.374,15.056,405.346,"Switzerland",0,0,0,0 +"D515","SL datum 95","E006",-2.0553,763.5581,87.6682,"Sri Lanka",0,0,0,0,-0.198003,-1.706361,-3.466120,-0.0315 +"D516","SL datum 1999","E006",-0.2933,766.9499,87.7131,"Sri Lanka",0,0,0,0,-0.1957040,-1.6950677,-3.4730161,-0.0393 +"D517","Cape (Supercedes D040)","E205",-134.73,-110.92,-292.66,"South Africa",0,0,0,0 +"D518","Hartebeesthoek94","E012",0,0,0,"South Africa",0,0,0,0 +"D519","Abidjan 1987","E001",-124.76,53,466.79,"Cote d'Ivoire",0,0,0,0 +"D520","Accra","E204",-199,32,322,"Ghana",0,0,0,0 +"D521","Azores Central 1948","E004",-104,167,-38,"Azores",0,0,0,0 +"D522","Azores Oriental 1940","E004",-203,141,53,"Azores",0,0,0,0 +"D523","Azores Occidental 1939","E004",-422.651,-172.995,84.02,"Azores",0,0,0,0 +"D524","Barbados 1938","E001",31.95,300.99,419.19,"Barbados",0,0,0,0 +"D525","Camacupa","E001",-50.9,-347.6,-231,"Angola",0,0,0,0 +"D526","Chos Malal 1914","E004",5.5,176.7,141.4,"Argentina",0,0,0,0 +"D527","Conakry 1905","E202",-23.0,259.0,-9.0,"Guinea",0,0,0,0 +"D528","Dealul Piscului 1933","E004",103.25,-100.40,-307.19,"Romania",0,0,0,0 +"D529","Dealul Piscului 1970","E015",44.107,-116.147,-54.648,"Romania",0,0,0,0 +"D530","Deir ez Zor","E202",-190.421,8.532,238.69,"Syria",0,0,0,0 +"D531","Dominica 1945","E001",725,685,536,"Dominica",0,0,0,0 +"D532","Kalianpur 1937","E209",214,804,268,"India",0,0,0,0 +"D533","Kalianpur 1962","E210",275.57,676.78,229.6,"Pakistan",0,0,0,0 +"D534","Kalianpur 1975","E216",295,736,257,"India",0,0,0,0 +"D535","SWEREF99","E008",0.0,0.0,0.0,"Sweden",0,0,0,0 +"D536","GDA94 (Geocentric Datum of Australia 1994)","E008",0.0,0.0,0.0,"Australia",0,0,0,0 +"D537","ETRF89 (European Terrestrial Reference Frame 1989)","E012",0.0,0.0,0.0,"Europe",0,0,0,0 +"D538","Bermuda 2000","E012",0.0,0.0,0.0,"Bermuda",0,0,0,0 +"D539","Samboja","E002",-404.78,-685.68,-45.47,"Indonesia",0,0,0,0 +"D540","Australian Antarctic 1998","E008",0.0,0.0,0.0,"Australian Antarctic Territory",0,0,0,0 +"D541","Everest (India and Nepal)","E226",295,736,257,"India",0,0,0,0 +"D542","Korea Datum 1985","E002",-323,309,653,"South Korea",0,0,0,0 +"D543","Israel","E008",-48,55,52,"Israel",0,0,0,0 +"D544","Lao National Datum 1997","E015",46.012,-127.108,-38.131,"Laos",0,0,0,0 +"D545","Hong Kong 1980 Datum","E004",-162.619,-276.959,-161.764,"Hong Kong",0,0,0,0,-0.067753,2.243649,1.158827,-1.094246 +"D546","HITO XVIII","E004",18.38,192.45,96.82,"Argentina",0,0,0,0,-0.056,0.142,0.200,-0.0013 +"D547","GDM 2000MRSO","E008",1.69276,-1.92994,2.07108,"West Malaysia",0,0,0,0,0.03515,-0.02858,-0.00617,0.24859 +"D548","GDM 2000BRSO","E008",-1.04278,-0.30902,0.57544,"East Malaysia",0,0,0,0,0.01102,-0.03471,0.02865,-0.01934 +"D549","Gulshan 303","E209",283.729,735.942,261.143,"Bangladesh",0,0,0,0 +"D551","CHTRF95 (Swiss Terrestrial Reference Frame 1995)","E008",0.0,0.0,0.0,"Switzerland",0,0,0,0 +"D600","D-PAF (Orbits)","E600",0.082,-0.502,-0.224,"Satellite Orbits",0,0,0,0,0.30444,0.04424,0.00609,0.9999999937 +"D601","Test Data Set 1","E601",0.071,-0.509,-0.166,"Test 1",0,0,0,0,0.0179,-0.0005,0.0067,0.999999983 +"D602","Test Data Set 2","E602",580.0,80.9,399.8,"Test 2",0,0,0,0,0.35,0.1,3.026,1.0000113470025 +"D610","US Standard Datum (USA, NADCON5)","E000","Conterminous U.S.","D611","nadcon5.ussd.nad27.conus.lon.trn.20160901.b","nadcon5.ussd.nad27.conus.lat.trn.20160901.b" +"D611","NAD27 (USA, NADCON5)","E000","Conterminous U.S.","D122","nadcon5.nad27.nad83_1986.conus.lon.trn.20160901.b","nadcon5.nad27.nad83_1986.conus.lat.trn.20160901.b" +"D612","NAD83 (HARN) (USA, NADCON5)","E008","Conterminous U.S.","-D122","nadcon5.nad83_1986.nad83_harn.conus.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_harn.conus.lat.trn.20160901.b" +"D613","NAD83 (FBN) (USA, NADCON5)","E008","Conterminous U.S.","-D612","nadcon5.nad83_harn.nad83_fbn.conus.lon.trn.20160901.b","nadcon5.nad83_harn.nad83_fbn.conus.lat.trn.20160901.b","nadcon5.nad83_harn.nad83_fbn.conus.eht.trn.20160901.b" +"D614","NAD83 (NSRS 2007) (USA, NADCON5)","E008","Conterminous U.S.","-D613","nadcon5.nad83_fbn.nad83_2007.conus.lon.trn.20160901.b","nadcon5.nad83_fbn.nad83_2007.conus.lat.trn.20160901.b","nadcon5.nad83_fbn.nad83_2007.conus.eht.trn.20160901.b" +"D615","NAD83 (2011) (USA, NADCON5)","E008","Conterminous U.S.","-D614","nadcon5.nad83_2007.nad83_2011.conus.lon.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.conus.lat.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.conus.eht.trn.20160901.b" +"D620","Puerto Rico Datum, adjustment of 1940 (USA, NADCON5)","E000","Puerto Rico, Virgin Islands","D122","nadcon5.pr40.nad83_1986.prvi.lon.trn.20160901.b","nadcon5.pr40.nad83_1986.prvi.lat.trn.20160901.b" +"D621","NAD83 (1993) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D122","nadcon5.nad83_1986.nad83_1993.prvi.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_1993.prvi.lat.trn.20160901.b" +"D622","NAD83 (1997) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D621","nadcon5.nad83_1993.nad83_1997.prvi.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_1997.prvi.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_1997.prvi.eht.trn.20160901.b" +"D623","NAD83 (2002) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D622","nadcon5.nad83_1997.nad83_2002.prvi.lon.trn.20160901.b","nadcon5.nad83_1997.nad83_2002.prvi.lat.trn.20160901.b","nadcon5.nad83_1997.nad83_2002.prvi.eht.trn.20160901.b" +"D624","NAD83 (NSRS 2007) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D623","nadcon5.nad83_2002.nad83_2007.prvi.lon.trn.20160901.b","nadcon5.nad83_2002.nad83_2007.prvi.lat.trn.20160901.b","nadcon5.nad83_2002.nad83_2007.prvi.eht.trn.20160901.b" +"D625","NAD83 (2011) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D624","nadcon5.nad83_2007.nad83_2011.prvi.lon.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.prvi.lat.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.prvi.eht.trn.20160901.b" +"D630","Old Hawaiian Datum (USA, NADCON5)","E000","Hawaii","D122","nadcon5.ohd.nad83_1986.hawaii.lon.trn.20160901.b","nadcon5.ohd.nad83_1986.hawaii.lat.trn.20160901.b" +"D631","NAD83 (1993) (USA, NADCON5)","E008","Hawaii","-D122","nadcon5.nad83_1986.nad83_1993.hawaii.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_1993.hawaii.lat.trn.20160901.b" +"D632","NAD83 (PA11) (USA, NADCON5)","E008","Hawaii","-D631","nadcon5.nad83_1993.nad83_pa11.hawaii.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_pa11.hawaii.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_pa11.hawaii.eht.trn.20160901.b" +"D640","NAD27 (USA, NADCON5)","E000","Alaska","D122","nadcon5.nad27.nad83_1986.alaska.lon.trn.20160901.b","nadcon5.nad27.nad83_1986.alaska.lat.trn.20160901.b" +"D641","NAD83 (1992) (USA, NADCON5)","E008","Alaska","-D122","nadcon5.nad83_1986.nad83_1992.alaska.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_1992.alaska.lat.trn.20160901.b" +"D642","NAD83 (NSRS 2007) (USA, NADCON5)","E008","Alaska","-D641","nadcon5.nad83_1992.nad83_2007.alaska.lon.trn.20160901.b","nadcon5.nad83_1992.nad83_2007.alaska.lat.trn.20160901.b","nadcon5.nad83_1992.nad83_2007.alaska.eht.trn.20160901.b" +"D643","NAD83 (2011) (USA, NADCON5)","E008","Alaska","-D642","nadcon5.nad83_2007.nad83_2011.alaska.lon.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.alaska.lat.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.alaska.eht.trn.20160901.b" +"D650","St. Paul 1897 (USA, NADCON5)","E000","St. Paul, Alaska","D651","nadcon5.sp1897.sp1952.stpaul.lon.trn.20160901.b","nadcon5.sp1897.sp1952.stpaul.lat.trn.20160901.b" +"D651","St. Paul 1952 (USA, NADCON5)","E000","St. Paul, Alaska","D122","nadcon5.sp1952.nad83_1986.stpaul.lon.trn.20160901.b","nadcon5.sp1952.nad83_1986.stpaul.lat.trn.20160901.b" +"D652","St. George 1897 (USA, NADCON5)","E000","St. George, Alaska","D653","nadcon5.sg1897.sg1952.stgeorge.lon.trn.20160901.b","nadcon5.sg1897.sg1952.stgeorge.lat.trn.20160901.b" +"D653","St. George 1952 (USA, NADCON5)","E000","St. George, Alaska","D122","nadcon5.sg1952.nad83_1986.stgeorge.lon.trn.20160901.b","nadcon5.sg1952.nad83_1986.stgeorge.lat.trn.20160901.b" +"D654","St. Lawrence 1952 (USA, NADCON5)","E000","St. Lawrence, Alaska","D122","nadcon5.sl1952.nad83_1986.stlawrence.lon.trn.20160901.b","nadcon5.sl1952.nad83_1986.stlawrence.lat.trn.20160901.b" +"D660","American Samoa 1962 (USA, NADCON5)","E000","American Samoa","D122","nadcon5.as62.nad83_1993.as.lon.trn.20160901.b","nadcon5.as62.nad83_1993.as.lat.trn.20160901.b" +"D661","NAD83 (2002) (USA, NADCON5)","E008","American Samoa","-D122","nadcon5.nad83_1993.nad83_2002.as.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.as.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.as.eht.trn.20160901.b" +"D662","NAD83 (PA11) (USA, NADCON5)","E008","American Samoa","-D661","nadcon5.nad83_2002.nad83_pa11.as.lon.trn.20160901.b","nadcon5.nad83_2002.nad83_pa11.as.lat.trn.20160901.b","nadcon5.nad83_2002.nad83_pa11.as.eht.trn.20160901.b" +"D670","Guam 1963 (USA, NADCON5)","E000","Guam and the Commonwealth of the Northern Mariana Islands","D122","nadcon5.gu63.nad83_1993.guamcnmi.lon.trn.20160901.b","nadcon5.gu63.nad83_1993.guamcnmi.lat.trn.20160901.b" +"D671","NAD83 (2002) (USA, NADCON5)","E008","Guam and the Commonwealth of the Northern Mariana Islands","-D122","nadcon5.nad83_1993.nad83_2002.guamcnmi.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.guamcnmi.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.guamcnmi.eht.trn.20160901.b" +"D672","NAD83 (MA11) (USA, NADCON5)","E008","Guam and the Commonwealth of the Northern Mariana Islands","-D671","nadcon5.nad83_2002.nad83_ma11.guamcnmi.lon.trn.20160901.b","nadcon5.nad83_2002.nad83_ma11.guamcnmi.lat.trn.20160901.b","nadcon5.nad83_2002.nad83_ma11.guamcnmi.eht.trn.20160901.b" +"D700","MODIS","E700",0,0,0,"Global Definition",0,0,0,0 +"D701","NAD83 (Deprecated - use D122)","E008",0,0,0,"Alabama",2,2,2,354 +"D702","NAD83 HARN (USA, NADCON)","E008","Alabama","D122","alhpgn.los","alhpgn.las" +"D703","NAD83 (Deprecated - use D122)","E008",0,0,0,"Arkansas",2,2,2,354 +"D704","NAD83 HARN (USA, NADCON)","E008","Arkansas","D122","arhpgn.los","arhpgn.las" +"D705","NAD83 (Deprecated - use D122)","E008",0,0,0,"Arizona",2,2,2,354 +"D706","NAD83 HARN (USA, NADCON)","E008","Arizona","D122","azhpgn.los","azhpgn.las" +"D707","NAD83 (Deprecated - use D122)","E008",0,0,0,"California (North of 37dN)",2,2,2,354 +"D708","NAD83 HARN (USA, NADCON)","E008","California (North of 37dN)","D122","cnhpgn.los","cnhpgn.las" +"D709","NAD83 (Deprecated - use D122)","E008",0,0,0,"California (South of 37dN)",2,2,2,354 +"D710","NAD83 HARN (USA, NADCON)","E008","California (South of 37dN)","D122","cshpgn.los","cshpgn.las" +"D711","NAD83 (Deprecated - use D122)","E008",0,0,0,"Colorado",2,2,2,354 +"D712","NAD83 HARN (USA, NADCON)","E008","Colorado","D122","cohpgn.los","cohpgn.las" +"D713","NAD83 (Deprecated - use D122)","E008",0,0,0,"Florida",2,2,2,354 +"D714","NAD83 HARN (USA, NADCON)","E008","Florida","D122","flhpgn.los","flhpgn.las" +"D715","NAD83 (Deprecated - use D122)","E008",0,0,0,"Georgia",2,2,2,354 +"D716","NAD83 HARN (USA, NADCON)","E008","Georgia","D122","gahpgn.los","gahpgn.las" +"D717","Guam 1963 (Deprecated - use D068)","E000",-100,-248,259,"Guam",3,3,3,5 +"D718","NAD83 HARN (USA, NADCON)","E008","Guam","D068","guhpgn.los","guhpgn.las" +"D719","NAD83 (Deprecated - use D122)","E008",0,0,0,"Hawaii",2,2,2,354 +"D720","NAD83 HARN (USA, NADCON)","E008","Hawaii","D122","hihpgn.los","hihpgn.las" +"D721","NAD83 (Deprecated - use D122)","E008",0,0,0,"Idaho-Montana (East of 113dW)",2,2,2,354 +"D722","NAD83 HARN (USA, NADCON)","E008","Idaho-Montana (East of 113dW)","D122","emhpgn.los","emhpgn.las" +"D723","NAD83 (Deprecated - use D122)","E008",0,0,0,"Idaho-Montana (West of 113dW)",2,2,2,354 +"D724","NAD83 HARN (USA, NADCON)","E008","Idaho-Montana (West of 113dW)","D122","wmhpgn.los","wmhpgn.las" +"D725","NAD83 (Deprecated - use D122)","E008",0,0,0,"Iowa",2,2,2,354 +"D726","NAD83 HARN (USA, NADCON)","E008","Iowa","D122","iahpgn.los","iahpgn.las" +"D727","NAD83 (Deprecated - use D122)","E008",0,0,0,"Illinois",2,2,2,354 +"D728","NAD83 HARN (USA, NADCON)","E008","Illinois","D122","ilhpgn.los","ilhpgn.las" +"D729","NAD83 (Deprecated - use D122)","E008",0,0,0,"Indiana",2,2,2,354 +"D730","NAD83 HARN (USA, NADCON)","E008","Indiana","D122","inhpgn.los","inhpgn.las" +"D731","NAD83 (Deprecated - use D122)","E008",0,0,0,"Kansas",2,2,2,354 +"D732","NAD83 HARN (USA, NADCON)","E008","Kansas","D122","kshpgn.los","kshpgn.las" +"D733","NAD83 (Deprecated - use D122)","E008",0,0,0,"Kentucky",2,2,2,354 +"D734","NAD83 HARN (USA, NADCON)","E008","Kentucky","D122","kyhpgn.los","kyhpgn.las" +"D735","NAD83 (Deprecated - use D122)","E008",0,0,0,"Louisiana",2,2,2,354 +"D736","NAD83 HARN (USA, NADCON)","E008","Louisiana","D122","lahpgn.los","lahpgn.las" +"D737","NAD83 (Deprecated - use D122)","E008",0,0,0,"Maryland-Delaware",2,2,2,354 +"D738","NAD83 HARN (USA, NADCON)","E008","Maryland-Delaware","D122","mdhpgn.los","mdhpgn.las" +"D739","NAD83 (Deprecated - use D122)","E008",0,0,0,"Maine",2,2,2,354 +"D740","NAD83 HARN (USA, NADCON)","E008","Maine","D122","mehpgn.los","mehpgn.las" +"D741","NAD83 (Deprecated - use D122)","E008",0,0,0,"Michigan",2,2,2,354 +"D742","NAD83 HARN (USA, NADCON)","E008","Michigan","D122","mihpgn.los","mihpgn.las" +"D743","NAD83 (Deprecated - use D122)","E008",0,0,0,"Minnesota",2,2,2,354 +"D744","NAD83 HARN (USA, NADCON)","E008","Minnesota","D122","mnhpgn.los","mnhpgn.las" +"D745","NAD83 (Deprecated - use D122)","E008",0,0,0,"Mississippi",2,2,2,354 +"D746","NAD83 HARN (USA, NADCON)","E008","Mississippi","D122","mshpgn.los","mshpgn.las" +"D747","NAD83 (Deprecated - use D122)","E008",0,0,0,"Missouri",2,2,2,354 +"D748","NAD83 HARN (USA, NADCON)","E008","Missouri","D122","mohpgn.los","mohpgn.las" +"D749","NAD83 (Deprecated - use D122)","E008",0,0,0,"Nebraska",2,2,2,354 +"D750","NAD83 HARN (USA, NADCON)","E008","Nebraska","D122","nbhpgn.los","nbhpgn.las" +"D751","NAD83 (Deprecated - use D122)","E008",0,0,0,"Nevada",2,2,2,354 +"D752","NAD83 HARN (USA, NADCON)","E008","Nevada","D122","nvhpgn.los","nvhpgn.las" +"D753","NAD83 (Deprecated - use D122)","E008",0,0,0,"New England (CT,MA,NH,RI,VT",2,2,2,354 +"D754","NAD83 HARN (USA, NADCON)","E008","New England (CT,MA,NH,RI,VT)","D122","nehpgn.los","nehpgn.las" +"D755","NAD83 (Deprecated - use D122)","E008",0,0,0,"New Jersey",2,2,2,354 +"D756","NAD83 HARN (USA, NADCON)","E008","New Jersey","D122","njhpgn.los","njhpgn.las" +"D757","NAD83 (Deprecated - use D122)","E008",0,0,0,"New Mexico",2,2,2,354 +"D758","NAD83 HARN (USA, NADCON)","E008","New Mexico","D122","nmhpgn.los","nmhpgn.las" +"D759","NAD83 (Deprecated - use D122)","E008",0,0,0,"New York",2,2,2,354 +"D760","NAD83 HARN (USA, NADCON)","E008","New York","D122","nyhpgn.los","nyhpgn.las" +"D761","NAD83 (Deprecated - use D122)","E008",0,0,0,"North Carolina",2,2,2,354 +"D762","NAD83 HARN (USA, NADCON)","E008","North Carolina","D122","nchpgn.los","nchpgn.las" +"D763","NAD83 (Deprecated - use D122)","E008",0,0,0,"North Dakota",2,2,2,354 +"D764","NAD83 HARN (USA, NADCON)","E008","North Dakota","D122","ndhpgn.los","ndhpgn.las" +"D765","NAD83 (Deprecated - use D122)","E008",0,0,0,"Ohio",2,2,2,354 +"D766","NAD83 HARN (USA, NADCON)","E008","Ohio","D122","ohhpgn.los","ohhpgn.las" +"D767","NAD83 (Deprecated - use D122)","E008",0,0,0,"Oklahoma",2,2,2,354 +"D768","NAD83 HARN (USA, NADCON)","E008","Oklahoma","D122","okhpgn.los","okhpgn.las" +"D769","NAD83 (Deprecated - use D122)","E008",0,0,0,"Pennsylvania",2,2,2,354 +"D770","NAD83 HARN (USA, NADCON)","E008","Pennsylvania","D122","pahpgn.los","pahpgn.las" +"D771","NAD83 (Deprecated - use D122)","E008",0,0,0,"Puerto Rico-Virgin Is",2,2,2,354 +"D772","NAD83 HARN (USA, NADCON)","E008","Puerto Rico-Virgin Is","D122","pvhpgn.los","pvhpgn.las" +"D773","American Samoa 1962 (Deprecated - use D189)","E000",-115,118,426,"Samoa (Eastern Islands)",25,25,25,2 +"D774","NAD83 HARN (USA, NADCON)","E008","Samoa (Eastern Islands)","D189","eshpgn.los","eshpgn.las" +"D775","American Samoa 1962 (Deprecated - use D189)","E000",-115,118,426,"Samoa (Western Islands)",25,25,25,2 +"D776","NAD83 HARN (USA, NADCON)","E008","Samoa (Western Islands)","D189","wshpgn.los","wshpgn.las" +"D777","NAD83 (Deprecated - use D122)","E008",0,0,0,"South Carolina",2,2,2,354 +"D778","NAD83 HARN (USA, NADCON)","E008","South Carolina","D122","schpgn.los","schpgn.las" +"D779","NAD83 (Deprecated - use D122)","E008",0,0,0,"South Dakota",2,2,2,354 +"D780","NAD83 HARN (USA, NADCON)","E008","South Dakota","D122","sdhpgn.los","sdhpgn.las" +"D781","NAD83 (Deprecated - use D122)","E008",0,0,0,"Tennessee",2,2,2,354 +"D782","NAD83 HARN (USA, NADCON)","E008","Tennessee","D122","tnhpgn.los","tnhpgn.las" +"D783","NAD83 (Deprecated - use D122)","E008",0,0,0,"Texas (East of 100dW)",2,2,2,354 +"D784","NAD83 HARN (USA, NADCON)","E008","Texas (East of 100dW)","D122","ethpgn.los","ethpgn.las" +"D785","NAD83 (Deprecated - use D122)","E008",0,0,0,"Texas (West of 100dW)",2,2,2,354 +"D786","NAD83 HARN (USA, NADCON)","E008","Texas (West of 100dW)","D122","wthpgn.los","wthpgn.las" +"D787","NAD83 (Deprecated - use D122)","E008",0,0,0,"Utah",2,2,2,354 +"D788","NAD83 HARN (USA, NADCON)","E008","Utah","D122","uthpgn.los","uthpgn.las" +"D789","NAD83 (Deprecated - use D122)","E008",0,0,0,"Virginia",2,2,2,354 +"D790","NAD83 HARN (USA, NADCON)","E008","Virginia","D122","vahpgn.los","vahpgn.las" +"D791","NAD83 (Deprecated - use D122)","E008",0,0,0,"Washington-Oregon",2,2,2,354 +"D792","NAD83 HARN (USA, NADCON)","E008","Washington-Oregon","D122","wohpgn.los","wohpgn.las" +"D793","NAD83 (Deprecated - use D122)","E008",0,0,0,"West Virginia",2,2,2,354 +"D794","NAD83 HARN (USA, NADCON)","E008","West Virginia","D122","wvhpgn.los","wvhpgn.las" +"D795","NAD83 (Deprecated - use D122)","E008",0,0,0,"Wisconsin",2,2,2,354 +"D796","NAD83 HARN (USA, NADCON)","E008","Wisconsin","D122","wihpgn.los","wihpgn.las" +"D797","NAD83 (Deprecated - use D122)","E008",0,0,0,"Wyoming",2,2,2,354 +"D798","NAD83 HARN (USA, NADCON)","E008","Wyoming","D122","wyhpgn.los","wyhpgn.las" +"D888","Lebanon Stereographic","E012",154.2668777,107.2190767,-263.01161212,"Lebanon",0,0,0,0,0.310716,0.218736,0.191232,0.99999913 +"D889","Lebanon Lambert","E202",190.9999,133.32473,-232.8391,"Lebanon",0,0,0,0,0.307836,0.216756,0.189036,0.9995341 +"D890","Luxembourg (LUREF)","E004",-192.986,13.673,-39.309,"Luxembourg",0,0,0,0,0.409900,2.933200,-2.688100,1.00000043 +"D891","Datum 73","E004",-223.237,110.193,36.649,"Portugal",0,0,0,0 +"D892","Datum Lisboa","E004",-304.046,-60.576,103.640,"Portugal",0,0,0,0 +"D893","PDO Survey Datum 1993","E001",-180.624,-225.516,173.919,"Oman",0,0,0,0,0.80970,1.89755,-8.33604,16.71006 +"D898","TWD97","E008",0,0,0,"Taiwan",0,0,0,0,0.0,0.0,0.0,0.0 +"D899","TWD67","E899",-752,-358,-179,"Taiwan",0,0,0,0,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +"D886","Reseau Geodesique Francais 1993","E899",-752,-358,-179,"France",0,0,0,0,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +"D887","Reseau National Belge 1972","E899",-752,-358,-179,"Belgium",0,0,0,0,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +"D819","Xian 1980","E224",0,0,0,"China",0,0,0,0,0,0,0,0 +"D820","Korea 2000","E008",0.0,0.0,0.0,"South Korea",0,0,0,0 +"D821","Pulkovo 1995","E015",24.47,-130.89,-81.56,"Russian Federation",0,0,0,0,0,0,-0.13,-0.22 +"D822","Beijing 1954","E015",15.8,-154.4,-82.3,"China",0,0,0,0 +"D823","Stockholm 1938 (RT38)","E002",0.0,0.0,0.0,"Sweden",0,0,0,0 +"D824","Greenland 1996 (GR96)","E008",0.0,0.0,0.0,"Greenland",0,0,0,0 +"D825","Libyan Geodetic Datum 2006 (LGD2006)","E004",-208.406,-109.878,-2.5764,"Libya",0,0,0,0 +"D826","Reseau Geodesique de la Polynesie Francaise (RGPF)","E008",0.072,-0.507,-0.245,"French Polynesia",0,0,0,0,0.0183,-0.0003,0.007,-0.0093 +"D827","IGC 1962 6th Parallel South","E001",0.0,0.0,0.0,"Democratic Republic of the Congo - adjacent to 6th parallel south",0,0,0,0 +"D828","Geodetic Datum of Malaysia (GDM)","E008",0.0,0.0,0.0,"Malaysia",0,0,0,0 +"D829","New Beijing","E015",0.0,0.0,0.0,"China",0,0,0,0 +"D830","Turkish National Reference Frame (TUKREF)","E008",0.0,0.0,0.0,"Turkey",0,0,0,0 +"D831","Bhutan National Geodetic Datum (DRUKREF)","E008",0.0,0.0,0.0,"Bhutan",0,0,0,0 +"D832","Ukraine 2000","E015",0.0,0.0,0.0,"Ukraine",0,0,0,0 +"D833","Japanese Geodetic Datum 2011 (JGD2011)","E008",0.0,0.0,0.0,"Japan",0,0,0,0 +"D834","Posiciones Geodesicas Argentinas 1998 (POSGAR 98)","E008",0.0,0.0,0.0,"Argentina",0,0,0,0 +"D835","Posiciones Geodesicas Argentinas 1994 (POSGAR 94)","E012",0.0,0.0,0.0,"Argentina",0,0,0,0 +"D836","Posiciones Geodesicas Argentinas 2007 (POSGAR 07)","E008",0.0,0.0,0.0,"Argentina",0,0,0,0 +"D837","Datum Geodesi Nasional 1995 (DGN95)","E012",0.0,0.0,0.0,"Indonesia",0,0,0,0 +"D838","Korea 1995","E012",0.0,0.0,0.0,"South Korea",0,0,0,0 +"D839","Institut Geographique du Congo Belge (IGCB) 1955","E001",-79.9,-158,-168.9,"The Democratic Republic of the Congo (Zaire) - Lower Congo",0,0,0,0 +"D894","WGS 1984 semi-major","E020",0,0,0,"WGS 1984 Auxiliary Sphere semi-major axis",0,0,0,0 +"D895","ATS77","E910",-95.323,166.098,-69.942,"Maritime Provinces",0,0,0,0,0.215,1.031,-0.047,1.922 +"D896","GosatCAIL1B+ EarthRadius","E025",0,0,0,"GosatCAIL1B+ EarthRadius",0,0,0,0 +"D897","Myanmar","E227",247,785,277,"Myanmar",0,0,0,0 +"D900","China 2000","E231",0,0,0,"China 2000",0,0,0,0 +"D901","Nouvelle Triangulation Francaise (grid shift)","E202","France","-D350","ntf_r93.gsb" +"D902","PRS92","E000",-127.62153,-67.24339,-47.04738,"Philippines Reference System 1992",0,0,0,0,3.06803,-4.90297,-1.57807,-1.06002 +"D903","North American 1983 2011","E008",0,0,0,"Alaska, Canada, CONUS, Central America, Mexico",2,2,2,354 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt new file mode 100644 index 00000000..ff6ae298 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt @@ -0,0 +1,129 @@ +! +! From https://github.com/OSGeo/gdal/issues/8034, June 30, 2023 +! +! I, Michael Goldberg, on behalf of PCI Geomatics agree to allow the ellips.txt +! and datum.txt file to be distributed under the GDAL open source license. +! +! Michael Goldberg +! Development Manager +! PCI Geomatics +! +! PCI Ellipsoid Database +! ---------------------- +! This file lists the different reference ellipsoids that may +! be used by PCI coordinate systems. Ellipsoid entries in datum.txt +! refer to entries in this file. +! +! Each ellipsoid is listed on a single line. The format of each record +! is as follows: +! +! Ellipsoid_code, Description_string, Semimajor_axis_m, Semiminor_axis_m [,extra comments] +! +! Ellipsoid_code is the code that uniquely identifies the ellipsoid +! within PCI software +! Description_string is a short description that helps users to identify +! the ellipsoid. It may be listed, for example, in a dropdown list in +! a PCI dialog box. +! Semimajor_axis_m is the ellipsoid semi-major (equatorial) axis length in metres. +! Semiminor_axis_m is the ellipsoid semi-minor (polar) axis length in metres. +! +! Any extra fields may be added after these four elements if desired; they will +! not be read by PCI software but may be helpful for the user. +! +! NOTE: The range of "E908" to "E998" is set aside for +! the use of local customer development. +! +"E000","Clarke 1866",6378206.4,6356583.8 +"E001","Clarke 1880 (RGS)",6378249.145,6356514.86955 +"E002","Bessel 1841",6377397.155,6356078.96284 +"E003","New International 1967",6378157.5,6356772.2 +"E004","International 1924",6378388.,6356911.94613 +"E005","WGS 72",6378135.,6356750.519915 +"E006","Everest (India 1830)",6377276.3452,6356075.4133 +"E007","WGS 66",6378145.,6356759.769356 +"E008","GRS 1980",6378137.,6356752.31414 +"E009","Airy 1830",6377563.396,6356256.91 +"E010","Everest (W. Malaysia and Singapore 1948)",6377304.063,6356103.039 +"E011","Modified Airy",6377340.189,6356034.448 +"E012","WGS 84",6378137.,6356752.314245 +"E013","Modified Fischer 1960",6378155.,6356773.3205 +"E014","Australian National 1965",6378160.,6356774.719 +"E015","Krassovsky 1940",6378245.,6356863.0188 +"E016","Hough 1960",6378270.,6356794.343479 +"E017","Fischer 1960",6378166.,6356784.283666 +"E018","Fischer 1968",6378150.,6356768.337303 +"E019","Normal Sphere",6370997.,6370997. +"E020","WGS 84 semimajor axis",6378137.,6378137. +"E021","WGS 84 semiminor axis",6356752.314245,6356752.314245 +"E022","Clarke 1866 Authalic Sphere", 6370997.000000, 6370997.000000 +"E023","GRS 1980 Authalic Sphere", 6371007.000000, 6371007.000000 +"E024","International 1924 Authalic Sphere", 6371228.000000, 6371228.000000 +"E025","GosatCAIL1B+ EarthRadius",6371008.77138,6371008.77138 +"E200","Indonesian 1974",6378160.,6356774.504086 +"E201","Everest (Pakistan)",6377309.613,6356108.570542 +"E202","Clarke 1880 (IGN, France)",6378249.2,6356515.0 +"E203","IUGG 67",6378160.,6356774.516090714 +"E204","War Office",6378300.000,6356751.689189 +"E205","Clarke 1880 Arc",6378249.145,6356514.966 +"E206","Bessel Modified",6377492.018,6356173.5087 +"E207","Clarke 1858",6378293.639,6356617.98149 +"E208","Clarke 1880",6378249.138,6356514.95942 +"E209","Everest (1937 Adjustment)",6377276.345,6356075.413 +"E210","Everest (1962 Definition)",6377301.243,6356100.23 +"E211","Everest Modified",6377304.063,6356103.039 +"E212","Modified Everest 1969",6377295.664,6356094.668 +"E213","Everest (1967 Definition)",6377298.556,6356097.550 +"E214","Clarke 1880 (Benoit)",6378300.789000,6356566.435000 +"E215","Clarke 1880 (SGA)",6378249.2,6356515.0 +"E216","Everest (1975 Definition)",6377299.151,6356098.1451 +"E217","GEM 10C",6378137,6356752.31414 +"E218","OSU 86F",6378136.2,6356751.516672 +"E219","OSU 91A",6378136.3,6356751.6163367 +"E220","Sphere",6371000,6371000 +"E221","Struve 1860",6378298.300000,6356657.142670 +"E222","Walbeck",6376896,6355834.847 +"E223","Plessis 1817",6376523,6355862.933 +"E224","Xian 1980",6378140.0,6356755.288 +"E225","EMEP Sphere",6370000,6370000 +"E226","Everest (India and Nepal)",6377301.243,6356100.228368 +"E227","Everest (1830 Definition)", 6377299.365595, 6356098.359005,"EPSG:7042" +"E228","Danish 1876", 6377019.270000, 6355762.539100 +"E229","Bessel Namibia (GLM)", 6377483.865280, 6356165.383246 +"E230","PZ-90", 6378136.000000, 6356751.361746 +"E231","CGCS2000", 6378137.000000, 6356752.314140 +"E232","IAG 1975", 6378140.000000, 6356755.288158 +"E233","NWL 9D", 6378145.000000, 6356759.769489 +"E234","Hughes 1980", 6378273.000000, 6356889.449000 +"E235","Clarke 1880 (international foot)", 6378306.369600, 6356571.996000 +"E236","Clarke 1866 Michigan", 6378450.047549, 6356826.621488 +"E237","APL 4.5 (1968)", 6378144.000000, 6356757.338698 +"E238","Airy (War Office)", 6377542.178, 6356235.764 +"E239","Clarke 1858 (DIGEST)", 6378235.600, 6356560.140 +"E240","Clarke 1880 (Palestine)", 6378300.782, 6356566.427 +"E241","Clarke 1880 (Syria)", 6378247.842, 6356513.671 +"E242","Clarke 1880 (Fiji)", 6378301.000, 6356566.548 +"E243","Andrae", 6377104.430, 6355847.415 +"E244","Delambre 1810", 6376985.228, 6356323.664 +"E245","Delambre (Carte de France)", 6376985.000, 6356323.436 +"E246","Germaine (Djibouti)", 6378284.000, 6356589.156 +"E247","Hayford 1909", 6378388.000, 6356909.000 +"E248","Krayenhoff 1827", 6376950.400, 6356356.341 +"E249","Plessis Reconstituted", 6376523.994, 6355862.907 +"E250","GRS 1967", 6378160.000, 6356774.516 +"E251","Svanberg", 6376797.000, 6355837.971 +"E252","Walbeck 1819 (Planheft 1942)", 6376895.000, 6355834.000 +"E333","Bessel 1841 (Japan By Law)",6377397.155,6356078.963 +"E600","D-PAF (Orbits)",6378144.0,6356759.0 +"E601","Test Data Set 1",6378144.0,6356759.0 +"E602","Test Data Set 2",6377397.2,6356079.0 +"E700","MODIS (Sphere from WGS84)",6371007.181,6371007.181 +"E899","GRS 1967 Modified",6378160.,6356774.719195306 +"E900","Bessel 1841 (Namibia)",6377483.865,6356165.382966 +"E901","Everest (India 1956)",6377301.243,6356100.228368 +"E902","Everest (W. Malaysia 1969)",6377295.664,6356094.667915 +"E903","Everest (E. Malaysia and Brunei)",6377298.556,6356097.550301 +"E904","Helmert 1906",6378200.,6356818.169628 +"E905","SGS 85",6378136.,6356751.301569 +"E906","WGS 60",6378165.,6356783.286959 +"E907","South American 1969",6378160.,6356774.719 +"E910","ATS77",6378135.0,6356750.304922 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd new file mode 100644 index 00000000..940bdf52 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd @@ -0,0 +1,705 @@ + + + + + + Root element defining a composition of one or several pages. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Define the outline / bookmarks of the document, typically the + structure of pages. But bookmarks may also point to particular + elements in a page. + Recursive list of OutlineItem. + + + + + + + + + An OutlineItem may be final or a parent of child OutlineItem. + If the OutlineItem has children, the open attribute controls whether + the children list must be folded or not. + An OutlineItem may have zero, one or several acssociated actions. + + + + + + + + + + + + + + User visible name of the outline item. + + + + + Whether children outline items should be unfolded. + + + + + + + + + Abstract action element type + + + + + + Abstract action element + + + + + + Goto a destination page. + The x1, y1, x2, y2 attributes + may also be defined to zoom-in on a particular area of the page. + + + + + + + + + + + + + + + + + Turn all layers on or off. + Later SetAllLayersStateAction/SetLayerStateAction might change this state. + + + + + + + + + + + + + Turn a specific layer on off. + Later SetAllLayersStateAction/SetLayerStateAction might change this state. + + + + + + + + + + + + + + Execute a Javascript action. + See https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf + The script must be put as the content of the element. + + + + + + + + + + + + + + + + + + + + The XMP payload must be serialized in a XML-escaped way + + + + + + + + Hierarchical definition of layers ("Optional Content Group" in PDF parlance) + Common to all pages, but their visibility in the layer tree can + be controlled with the displayOnlyOnVisiblePages attribute. + + + + + + + Whether to list, in the layer tree, layers that are referenced + by at at least one currently visible page(s). + Default is false, that is the layers are always listed. + + + + + + + Define a Layer ("Optional Content Group" in PDF parlance) + + + + + + + Arbitrary id, unique to the layer. Will be cross-referenced by + IfLayerOnType#layerId to define conditional visibility. + + + + + User visible name + + + + + + Arbitrary id defining a group of mutually exclusive layers. + Layers referencing to the same #mutuallyExclusiveGroupId value + will be mutually exclusive. + + + + + + + + + + + + + + + Arbitrary id, unique to the page. Required if the page must + be referenced by a OutlineItem. + + + + + + + + + + + + + + + + + + + + + + CRS WKT string, or EPSG:XXXX code. + + + + + Define the viewport where georeferenced coordinates are + available. + If not specified, the extent of BoundingPolygon will be used instead. + If none of BoundingBox and BoundingPolygon are specified, + the whole PDF page will be assumed to be georeferenced. + + + + + Define a polygon / neatline in PDF units into which the + Measure tool will display coordinates. + If not specified, BoundingBox will be used instead. + If none of BoundingBox and BoundingPolygon are specified, + the whole PDF page will be assumed to be georeferenced. + + + + + Those points define the mapping from PDF coordinates to + georeferenced coordinates. At least 4 of them must be + provided. They do not need to form a rectangle neither in + PDF coordinate space nor in georeferenced coordinate space. + However if the georeferenced area is referenced to by content, + they must be evaluated to a geotransform, without rotation + or shearing. + + + + + + ID that can be referred to to automatically place content. + The georeferencing area ca be referenced to, only if the + control points define an affine geotransform, without rotation + or shearing, from PDF coordinate space to georeferenced + coordinate space. + + + + + ISO-32000 extension format is the georeferencing format + recognized by the Measure / Geographic location tool of Acrobat reader. + + + + + OGC Best Practice format is the georeferencing format + recognized by the Terrago Toolbar. + It seems that within a PDF file, + there should be only georeferenced areas encoded with the + OGC Best Practice so that the Terrago Toolbar accepts to + read them. + + + + + + + + + + Defines the data axis to SRS axis mapping. List of + comma-separated axis number (starting at 1). + Used to interpret the GeoX and GeoY attribute meaning. + If not specified, the traditional GIS order is assumed. + + + + + + + + + x2 must be > x1 and y2 > y1 + + + + + + + + + + + + + X value of the control point expressed in the SRS + + + + + Y value of the control point expressed in the SRS + + + + + + + Sequence of raster, vector, labels, content from other PDF document, + or conditionalized content of any of the above types. + The content is drawn in the order it is mentioned, that is the + first mentioned item is drawn first, and the last mentioned item + is drawn last. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Insert the content stream of the (first page of the) PDF, together with + its resources, without any extra rasterization. + Optional content groups or georeferencing potentially found in the + PDF to insert are ignored. + The dimensions of the inserted PDF are assumed to be the same + as the PDF where it is inserted. + + + + + + + + + + Insert raster (or rasterized) content from a GDAL dataset. + + There are two modes: + + - one where the raster potential georeferencing is completely ignored, + and the image is put at the specified PDF coordinates. + I which case , x1, y1, x2, y2 are in PDF coordinate units and represent the + area where the image will be stretched. If not specified, + the whole PDF page is occupied. + x2 must be > x1 and y2 > y1. + + - another one, when the georeferencingId attribute is defined, and + reference a georeferenced area. In that case, the raster geotransform + will be used to correctly place it in the georeferenced area. + + + + + + + + GDAL dataset name + + + + + + + + + References a georeferenced area in the same page + through its Georeferencing#id + + + + + + + + + + Only applies when method=JPEG. + If not specified, if the source raster is a JPEG file, its + codestream will be used directly. Otherwise, the image will + be compressed with a quality of 75%. + + + + + Only applies when method=DEFALTE + + + + + + + + + + + + + + + + + + + + + + Insert vector content from a OGR dataset. + + There are two modes: + - The coordinates of the vector features must be in PDF coordinate units. + This is when the georeferencingId attributes is not set. + + - another one, when the georeferencingId attribute is defined, and + reference a georeferenced area. In that case, the vector georeferenced + coordinates will be used to correctly place it in the georeferenced area. + + Note: OGR Feature Style strings containing a LABEL tool will not work with + this element, to display labels use a VectorLabel element instead. + + + + + + + + OGR dataset name + + + + + OGR layer name + + + + + References a georeferenced area in the same page + through its Georeferencing#id + + + + + Whether objects should be drawn or not + + + + + Name of the attribute whose value is used to create a hyperlink + + + + + String overriding per-feature style + + + + + + + The LogicalStructure element should be put when the features + of the layer should be written in the logical structure of the + document, and thus visible in the "Model Tree" of Acrobat reader. + By default, all OGR fields are included. + + + + + + + Whether all fields should be excluded, but the one(s) + potentially mentioned in IncludeField. + + + + + Name of OGR field to include. + + + + + + + Whether all fields should be included, but the one(s) + potentially mentioned in ExcludeField. + + + + + Name of OGR field to exclude. + + + + + + + + Name of the layer that will appear in the PDF reader. + If not specified, this will be the OGR layer name. + + + + + Name of the OGR field whose value should be display for each + feature in feature tree of the PDF reader. + If not specified, this will "feature{FID}". + + + + + + + Insert text labels for features from a OGR dataset. + + The features must be associated with a OGR Feature Style string with + a LABEL tool. + Only LATIN-1 characters will be correctly output. + + There are two modes: + - The coordinates of the vector features must be in PDF coordinate units. + This is when the georeferencingId attributes is not set. + + - another one, when the georeferencingId attribute is defined, and + reference a georeferenced area. In that case, the vector georeferenced + coordinates will be used to correctly place it in the georeferenced area. + + + + + + + OGR dataset name + + + + + OGR layer name + + + + + References a georeferenced area in the same page + through its Georeferencing#id + + + + + String overriding per-feature style + + + + + + + + + + + + Blend mode as defined in PDF reference version 1.7 + page 520, Table 7.2 "Standard separable blend modes". + + + + + + + + + + + + + + + + + + + + + + + + + + + Conditionalize content display to the On status of a layer. + IfLayerOn elements can be nested. And in general, the nesting used + to define the layers should be used to define the conditional + content too, because toggling off a upper-level layer in Acrobat + does not change the state of its children. + + For example: + <Layer id="A" name="A"> + <Layer id="A.1" name="A.1""></Layer> + </Layer> + + <IfLayerOnType layerId="A"> + <IfLayerOnType layerId="A.1"> + .... + </IfLayerOnType> + </IfLayerOnType> + + + + + + Should reference a Layer#id attribute. + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs new file mode 100644 index 00000000..516f2882 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs @@ -0,0 +1,1455 @@ + + + + Obce + Data|Obce|Obec + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice3 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + StatusKod + StatusKod + Integer + + + + OkresKod + Okres|Kod + Integer + + + + PouKod + Pou|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + CleneniSMRozsahKod + CleneniSMRozsahKod + Integer + + + + CleneniSMTypKod + CleneniSMTypKod + Integer + + + + NutsLau + NutsLau + String + 12 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + SpravniObvody + Data|SpravniObvody|SpravniObvod + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniMomcKod + SpravniMomcKod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Mop + Data|Mop|Mop + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Momc + Data|Momc|Momc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + MopKod + Mop|Kod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + SpravniObvodKod + SpravniObvod|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + CastiObci + Data|CastiObci|CastObce + + + DefinicniBod + Geometrie|DefinicniBod + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + KatastralniUzemi + Data|KatastralniUzemi|KatastralniUzemi + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice2 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ExistujeDigitalniMapa + ExistujeDigitalniMapa + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Zsj + Data|Zsj|Zsj + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + Vymera + Vymera + Integer + Integer64 + + + + CharakterZsjKod + CharakterZsjKod + Integer + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Ulice + Data|Ulice|Ulice + + + DefinicniCara + Geometrie|DefinicniCara + MultiLineString + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + + Parcely + Data|Parcely|Parcela + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + Polygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Id + Id + Integer + Integer64 + + + + Nespravny + Nespravny + String + 5 + + + + KmenoveCislo + KmenoveCislo + Integer + + + + PododdeleniCisla + PododdeleniCisla + Integer + + + + VymeraParcely + VymeraParcely + Integer + Integer64 + + + + ZpusobyVyuzitiPozemku + ZpusobyVyuzitiPozemku + Integer + + + + DruhCislovaniKod + DruhCislovaniKod + Integer + + + + DruhPozemkuKod + DruhPozemkuKod + Integer + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + BonitovanyDilVymera + BonitovaneDily|BonitovanyDil|Vymera + IntegerList + + + + BonitovanyDilBonitovanaJednotkaKod + BonitovaneDily|BonitovanyDil|BonitovanaJednotkaKod + IntegerList + + + + BonitovanyDilIdTranskace + BonitovaneDily|BonitovanyDil|IdTranskace + IntegerList + Integer64 + + + + BonitovanyDilRizeniId + BonitovaneDily|BonitovanyDil|RizeniId + IntegerList + Integer64 + + + + ZpusobOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchranyPozemku|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchranyPozemku|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + + StavebniObjekty + Data|StavebniObjekty|StavebniObjekt + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CislaDomovni|CisloDomovni + IntegerList + + + + IdentifikacniParcelaId + IdentifikacniParcela|Id + Integer + Integer64 + + + + TypStavebnihoObjektuKod + TypStavebnihoObjektuKod + Integer + + + + ZpusobVyuzitiKod + ZpusobVyuzitiKod + Integer + + + + CastObceKod + CastObce|Kod + Integer + + + + MomcKod + Momc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + + Dokonceni + Dokonceni + String + 19 + + + + DruhKonstrukceKod + DruhKonstrukceKod + Integer + + + + ObestavenyProstor + ObestavenyProstor + Integer + + + + PocetBytu + PocetBytu + Integer + + + + PocetPodlazi + PocetPodlazi + Integer + + + + PodlahovaPlocha + PodlahovaPlocha + Integer + + + + PripojeniKanalizaceKod + PripojeniKanalizaceKod + Integer + + + + PripojeniPlynKod + PripojeniPlynKod + Integer + + + + PripojeniVodovodKod + PripojeniVodovodKod + Integer + + + + VybaveniVytahemKod + VybaveniVytahemKod + Integer + + + + ZastavenaPlocha + ZastavenaPlocha + Integer + + + + ZpusobVytapeniKod + ZpusobVytapeniKod + Integer + + + + ZpusobOchranyKod + ZpusobyOchrany|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchrany|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchrany|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchrany|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + DetailniTEAKod + DetailniTEA|DetailniTEA|Kod + IntegerList + + + + DetailniTEAPlatiOd + DetailniTEA|DetailniTEA|PlatiOd + StringList + 19 + + + + DetailniTEAGlobalniIdNavrhuZmeny + DetailniTEA|DetailniTEA|GlobalniIdNavrhuZmeny + IntegerList + Integer64 + + + + DetailniTEADruhKonstrukceKod + DetailniTEA|DetailniTEA|DruhKonstrukceKod + IntegerList + + + + DetailniTEAPocetBytu + DetailniTEA|DetailniTEA|PocetBytu + IntegerList + + + + DetailniTEAPocetPodlazi + DetailniTEA|DetailniTEA|PocetPodlazi + IntegerList + + + + DetailniTEAPripojeniKanalizaceKod + DetailniTEA|DetailniTEA|PripojeniKanalizaceKod + IntegerList + + + + DetailniTEAPripojeniPlynKod + DetailniTEA|DetailniTEA|PripojeniPlynKod + IntegerList + + + + DetailniTEAPripojeniVodovodKod + DetailniTEA|DetailniTEA|PripojeniVodovodKod + IntegerList + + + + DetailniTEAZpusobVytapeniKod + DetailniTEA|DetailniTEA|ZpusobVytapeniKod + IntegerList + + + + DetailniTEAAdresniMistoKod + DetailniTEA|DetailniTEA|AdresniMistoKod|Kod + IntegerList + + + + + AdresniMista + Data|AdresniMista|AdresniMisto + + + AdresniBod + Geometrie|DefinicniBod|AdresniBod + Point + + + + Zachranka + Geometrie|DefinicniBod|Zachranka + Point + + + + Hasici + Geometrie|DefinicniBod|Hasici + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CisloDomovni + Integer + + + + CisloOrientacni + CisloOrientacni + Integer + + + + CisloOrientacniPismeno + CisloOrientacniPismeno + String + 1 + + + + Psc + Psc + Integer + + + + StavebniObjektKod + StavebniObjekt|Kod + Integer + + + + UliceKod + Ulice|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs new file mode 100644 index 00000000..c8b532fe --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs @@ -0,0 +1,86 @@ + + + + VolebniOkrsek + Data|VolebniOkrsek|VO + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Cislo + Cislo + Integer + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + MomcKod + Momc|Kod + Integer + + + + Poznamka + Poznamka + String + 60 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs new file mode 100644 index 00000000..e585f1bd --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs @@ -0,0 +1,1489 @@ + + + + Staty + Data|Staty|Stat + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 2 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + RegionySoudrznosti + Data|RegionySoudrznosti|RegionSoudrznosti + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Kraje + Data|Kraje|Kraj + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Vusc + Data|Vusc|Vusc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + 6 + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + RegionSoudrznostiKod + RegionSoudrznosti|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 5 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Okresy + Data|Okresy|Okres + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + KrajKod + Kraj|Kod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 6 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Orp + Data|Orp|Orp + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Pou + Data|Pou|Pou + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + 6 + + + + OrpKod + Orp|Kod + Integer + 6 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Obce + Data|Obce|Obec + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice3 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + StatusKod + StatusKod + Integer + + + + OkresKod + Okres|Kod + Integer + + + + PouKod + Pou|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + CleneniSMRozsahKod + CleneniSMRozsahKod + Integer + + + + CleneniSMTypKod + CleneniSMTypKod + Integer + + + + NutsLau + NutsLau + String + 12 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + SpravniObvody + Data|SpravniObvody|SpravniObvod + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniMomcKod + SpravniMomcKod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Mop + Data|Mop|Mop + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Momc + Data|Momc|Momc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + MopKod + Mop|Kod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + SpravniObvodKod + SpravniObvod|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + CastiObci + Data|CastiObci|CastObce + + + DefinicniBod + Geometrie|DefinicniBod + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + KatastralniUzemi + Data|KatastralniUzemi|KatastralniUzemi + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice2 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ExistujeDigitalniMapa + ExistujeDigitalniMapa + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Zsj + Data|Zsj|Zsj + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + Vymera + Vymera + Integer + Integer64 + + + + CharakterZsjKod + CharakterZsjKod + Integer + + + + DatumVzniku + DatumVzniku + String + 19 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs new file mode 100644 index 00000000..9d62bcf4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs @@ -0,0 +1,2126 @@ + + + + Staty + Data|Staty|Stat + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 2 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + RegionySoudrznosti + Data|RegionySoudrznosti|RegionSoudrznosti + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Kraje + Data|Kraje|Kraj + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Vusc + Data|Vusc|Vusc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + 6 + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + RegionSoudrznostiKod + RegionSoudrznosti|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 5 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Okresy + Data|Okresy|Okres + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + KrajKod + Kraj|Kod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 6 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Orp + Data|Orp|Orp + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Pou + Data|Pou|Pou + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + 6 + + + + OrpKod + Orp|Kod + Integer + 6 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Obce + Data|Obce|Obec + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice3 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + StatusKod + StatusKod + Integer + + + + OkresKod + Okres|Kod + Integer + + + + PouKod + Pou|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + CleneniSMRozsahKod + CleneniSMRozsahKod + Integer + + + + CleneniSMTypKod + CleneniSMTypKod + Integer + + + + NutsLau + NutsLau + String + 12 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + SpravniObvody + Data|SpravniObvody|SpravniObvod + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniMomcKod + SpravniMomcKod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Mop + Data|Mop|Mop + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Momc + Data|Momc|Momc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + MopKod + Mop|Kod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + SpravniObvodKod + SpravniObvod|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + CastiObci + Data|CastiObci|CastObce + + + DefinicniBod + Geometrie|DefinicniBod + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + KatastralniUzemi + Data|KatastralniUzemi|KatastralniUzemi + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice2 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ExistujeDigitalniMapa + ExistujeDigitalniMapa + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Zsj + Data|Zsj|Zsj + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + Vymera + Vymera + Integer + Integer64 + + + + CharakterZsjKod + CharakterZsjKod + Integer + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Ulice + Data|Ulice|Ulice + + + DefinicniCara + Geometrie|DefinicniCara + MultiLineString + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + + Parcely + Data|Parcely|Parcela + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + Polygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Id + Id + Integer + Integer64 + + + + Nespravny + Nespravny + String + 5 + + + + KmenoveCislo + KmenoveCislo + Integer + + + + PododdeleniCisla + PododdeleniCisla + Integer + + + + VymeraParcely + VymeraParcely + Integer + Integer64 + + + + ZpusobyVyuzitiPozemku + ZpusobyVyuzitiPozemku + Integer + + + + DruhCislovaniKod + DruhCislovaniKod + Integer + + + + DruhPozemkuKod + DruhPozemkuKod + Integer + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + BonitovanyDilVymera + BonitovaneDily|BonitovanyDil|Vymera + IntegerList + + + + BonitovanyDilBonitovanaJednotkaKod + BonitovaneDily|BonitovanyDil|BonitovanaJednotkaKod + IntegerList + + + + BonitovanyDilIdTranskace + BonitovaneDily|BonitovanyDil|IdTranskace + IntegerList + Integer64 + + + + BonitovanyDilRizeniId + BonitovaneDily|BonitovanyDil|RizeniId + IntegerList + Integer64 + + + + ZpusobOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchranyPozemku|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchranyPozemku|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + + StavebniObjekty + Data|StavebniObjekty|StavebniObjekt + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CislaDomovni|CisloDomovni + IntegerList + + + + IdentifikacniParcelaId + IdentifikacniParcela|Id + Integer + Integer64 + + + + TypStavebnihoObjektuKod + TypStavebnihoObjektuKod + Integer + + + + ZpusobVyuzitiKod + ZpusobVyuzitiKod + Integer + + + + CastObceKod + CastObce|Kod + Integer + + + + MomcKod + Momc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + + Dokonceni + Dokonceni + String + 19 + + + + DruhKonstrukceKod + DruhKonstrukceKod + Integer + + + + ObestavenyProstor + ObestavenyProstor + Integer + + + + PocetBytu + PocetBytu + Integer + + + + PocetPodlazi + PocetPodlazi + Integer + + + + PodlahovaPlocha + PodlahovaPlocha + Integer + + + + PripojeniKanalizaceKod + PripojeniKanalizaceKod + Integer + + + + PripojeniPlynKod + PripojeniPlynKod + Integer + + + + PripojeniVodovodKod + PripojeniVodovodKod + Integer + + + + VybaveniVytahemKod + VybaveniVytahemKod + Integer + + + + ZastavenaPlocha + ZastavenaPlocha + Integer + + + + ZpusobVytapeniKod + ZpusobVytapeniKod + Integer + + + + ZpusobOchranyKod + ZpusobyOchrany|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchrany|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchrany|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchrany|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + DetailniTEAKod + DetailniTEA|DetailniTEA|Kod + IntegerList + + + + DetailniTEAPlatiOd + DetailniTEA|DetailniTEA|PlatiOd + StringList + 19 + + + + DetailniTEAGlobalniIdNavrhuZmeny + DetailniTEA|DetailniTEA|GlobalniIdNavrhuZmeny + IntegerList + Integer64 + + + + DetailniTEADruhKonstrukceKod + DetailniTEA|DetailniTEA|DruhKonstrukceKod + IntegerList + + + + DetailniTEAPocetBytu + DetailniTEA|DetailniTEA|PocetBytu + IntegerList + + + + DetailniTEAPocetPodlazi + DetailniTEA|DetailniTEA|PocetPodlazi + IntegerList + + + + DetailniTEAPripojeniKanalizaceKod + DetailniTEA|DetailniTEA|PripojeniKanalizaceKod + IntegerList + + + + DetailniTEAPripojeniPlynKod + DetailniTEA|DetailniTEA|PripojeniPlynKod + IntegerList + + + + DetailniTEAPripojeniVodovodKod + DetailniTEA|DetailniTEA|PripojeniVodovodKod + IntegerList + + + + DetailniTEAZpusobVytapeniKod + DetailniTEA|DetailniTEA|ZpusobVytapeniKod + IntegerList + + + + DetailniTEAAdresniMistoKod + DetailniTEA|DetailniTEA|AdresniMistoKod|Kod + IntegerList + + + + + AdresniMista + Data|AdresniMista|AdresniMisto + + + AdresniBod + Geometrie|DefinicniBod|AdresniBod + Point + + + + Zachranka + Geometrie|DefinicniBod|Zachranka + Point + + + + Hasici + Geometrie|DefinicniBod|Hasici + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CisloDomovni + Integer + + + + CisloOrientacni + CisloOrientacni + Integer + + + + CisloOrientacniPismeno + CisloOrientacniPismeno + String + 1 + + + + Psc + Psc + Integer + + + + StavebniObjektKod + StavebniObjekt|Kod + Integer + + + + UliceKod + Ulice|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + + + ZaniklePrvky + Data|ZaniklePrvky|ZaniklyPrvek + + + TypPrvkuKod + TypPrvkuKod + String + 2 + + + + PrvekId + PrvekId + Integer + Integer64 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57agencies.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57agencies.csv new file mode 100644 index 00000000..b60016d3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57agencies.csv @@ -0,0 +1,249 @@ +#AgencyID,Token,Code,AgencyName +1,AE,530,Ministry of Communications, United Arab Emirates +2,AR,1,Servicio de Hidrografia Naval, Argentina +3,AU,10,Hydrographic Service, Royal Australian Navy, Australia +4,BH,20,Hydrographic Section, Survey Directorate, Bahrain +5,BE,30,Antwerpse Zeediensten Hydrografie, Belgium +6,B1,31,Dienst der Kust Hydrografie, Belgium +7,BR,40,Diretoria de Hidrografia e Navegacao, Brazil +8,CA,50,Canadian Hydrographic Service, Canada +9,CL,60,Servicio Hidrogr fico y Oceanogr fico de la Armada, Chile +10,CN,70,Maritime Safety Administration, China +11,C1,71,Navigation Guarantee Department, China +12,C2,72,Hong Kong Hydrographic Service +13,HR,80,Drzavni Hidrografski Institut, Croatia +14,CU,90,Instituto Cubano de Hidrografia, Cuba +15,CY,100,Department of Lands & Surveys, Hydrographic Unit, Cyprus +16,DK,110,Kort-Og Matrikelstyrelsen, Denmark +17,D1,111,Farvandsvaesenet, Denmark +18,DO,120,Departamento Hidrografico, Marina de Guerra, Dominican Rep. +19,DZ,610,Service Hydrographique des forces navales, Algeria +20,EC,130,Instituto Oceanografico de la Armada, Ecuador +21,EG,140,Shobat al Misaha al Baharia, Egypt +22,FJ,150,Fiji Hydrographic Service, Fiji +23,FI,160,Merenkulkuhallitus, Merikarttaosasto, Finland +24,FR,170,Service Hydrographique et Oceanographique de la Marine, France +25,DE,180,Bundesamt fuer Seeschiffahrt und Hydrographie, Germany +26,GR,190,Hellenic Navy Hydrographic Service, Greece +27,GT,200,Departamento de Sistemas Hidraulicos, Guatemala +28,G1,201,Instituto Geogr fico Militar, Guatemala +29,IS,210,Sjomaelingar Islands, Iceland +30,IN,220,Naval Hydrographic Office, India +31,ID,230,Dinas Hidro-Oseanografi (Dishidros), Indonesia +32,IR,240,Ports and Shipping Organization, Iran +33,IT,250,Istituto Idrografico della Marina, Italy +34,JP,260,Japan Hydrographic Department, Japan +35,KR,270,Hydrographic Department of the DPRK, Korea (DPR of) +36,KP,280,Office of Hydrographic Affairs, Korea (Rep. of) +37,MY,290,Royal Malaysian Navy Hydrographic Department, Malaysia +38,MC,300,Departement des Travaux Publics et des Affaires Sociales, Monaco +39,NL,310,Dienst der Hydrografie Koninklijke Marine, Netherlands +40,NZ,320,Royal New Zealand Navy Hydrographic Office, New Zealand +41,NG,330,Nigerian Navy Hydrographic Office, Nigeria +42,NO,340,Norwegian Hydrographic Service, Norway +43,N1,341,Electronic Chart Centre, Norway +44,OM,350,National Hydrographic Organization, Oman +45,PK,360,Pakistan Hydrographic Department, Pakistan +46,PG,370,Department of Transport, Maritime Division, Papua New Guinea +47,PE,380,Direccion de Hidrografia y Navegacion de la Marina, Peru +48,PH,390,Coast & Geodetic Survey Dept., Philippines +49,PL,400,Biuro Hydrograficzne Marynarki Wojennej, Poland +50,PT,410,Instituto Hidrografico, Portugal +51,RU,420,Head Department of Navigation & Oceanography, Russian Federation +52,SG,430,Hydrographic Department, Singapore +53,ZA,440,South African Navy Hydrographic Office, South Afrika (Rep. of) +54,ES,450,Instituto Hidrogr fico de la Marina, Spain +55,LK,460,National Aquatic Resources Agency, Sri Lanka +56,SR,470,Ministry of Transports, Maritime Affairs, Suriname +57,SE,480,Sjoekarteavdelningen, Sweden +58,SY,490,General Directorate of Ports, Syria +59,TH,500,Krom Utoksastr, Thailand +60,TT,510,Trinidad & Tobago Hydrographic Unit, Trinidad & Tobago +61,TR,520,Seyir, Hidrografi ve Osinografi Dairesi Baskanligi, Turkey +62,GB,540,Hydrographic Office, UK +63,US,550,Office of Coast Survey, USA +64,U1,551,National Imagery and Mapping Agency, USA +65,U2,552,Naval Oceanography Command, USA +66,U3,553,US Army Corps of Engineers +67,UY,560,Servicio de Oceanografia, Hidrografia y Meteorologia de la Armada, Uruguay +68,VE,570,Direccion de Hidrografia y Navegacion, Venezuela +69,YU,580,Hydrographic Institute of the Navy, Yugoslavia +70,ZR,590,Direction de la Marine et des Voies Navigables, Zaire +71,AL,600,Sherbimi Hidrografik Shqiptar, Albania +72,AO,620,Not known, Angola +73,AG,630,Department of Marine Services and Merchant Shipping, Antigua and Barbuda +74,AW,640,Not known, Aruba +75,BS,650,Department of Lands and Surveys, Bahamas +76,BD,660,Department of Hydrography, Bangladesh +77,BB,670,Barbados Port Authority, Barbados +78,BZ,680,Not known, Belize +79,BJ,690,Direction Generale du Port Autonome de Cotonou, Benin +80,BO,700,Servicio de Hidrografia Naval, Bolivia +81,BN,710,Department of Marine, Brunei Darussalam +82,BG,720,Hidrografska Sluzhba Pri Ministerstvo Na Otbranata, Bulgaria +83,KH,730,Service de l'Hydraulique et des Voies Navigables, Cambodia +84,CM,740,Office National des Ports du Cameroun, Cameroon +85,CV,750,Direccao Geral da Marinha Mercante, Cape Verde +86,CO,760,Ministerio de Defensa Nacional, Armada Nacional, Direccion General Maritima, Colombia +87,KM,770,Not known, Comoros +88,CG,780,Direction du Port de Pointe-Noire, Congo +89,CK,790,Department of Trade Labour and Transport, Cook Islands +90,CR,800,Ministerio de Obras Publicas y Transportes, Costa Rica +91,CI,810,Direction G_n_rale du Port Autonome d'Abidjan, Cote-d'Ivoire +92,DJ,820,Ministere du Port et des Affaires Maritimes, Djibuti +93,DM,830,Not known, Dominica +94,SV,840,Instituto Geografico Nacional, El Salvador +95,GQ,850,Not known, Equatorial Guinea +96,ER,860,Port and Maritime Transport Authority, Eritrea +97,EE,870,Tuletorni - Huedrograafiatalitus, Estonia +98,ET,880,Ministry of Transport and Communications, Ethiopia +99,GA,890,Service de la Signalisation Maritime, Gabon +100,GM,900,Gambia Ports Authority, Gambia +101,GH,910,Ghana Ports and Harbours Authority, Ghana +102,GD,920,Grenada Ports Authority, Grenada +103,GN,930,Minist_re des Transports et Travaux Publics, Guinea +104,GW,940,Servicos da Marinha, Guinea-Bissau +105,GY,950,Transport and Harbours Department, Guyana +106,HT,960,Service Maritime et de Navigation d'Haiti, Haiti +107,HN,970,Departamento de Geologia e Hidrografia, Honduras +108,IQ,980,Marine Department, Iraq +109,IE,990,Department of the Marine, Ireland +110,IL,1000,Administration of Shipping and Ports, Israel +111,JM,1010,Harbour Master's Department, Jamaica +112,JO,1020,The Ports Corporation, Jordan +113,KE,1030,Survey of Kenya, Kenya +114,KI,1040,Ministry of Transport and Communications, Kiribati +115,KW,1050,Ministry of Communications, Kuwait +116,LV,1060,Latvijas Hidrografijas Dienests, Latvia +117,LB,1070,Service du Transport Maritime, Lebanon +118,LR,1080,Ministry of Lands, Mines and Energy, Liberia +119,LY,1090,Not known, Libyan Arab Jamahiriya +120,LT,1100,Klaipeda State Seaport Authority, Lithuania +121,MG,1110,Foiben-Taosarintanin'i Madagasikara, Madagascar +122,MW,1120,Hydrographic Survey Unit, Malawi +123,MV,1130,Department of Information and Broadcasting, Maldives +124,MT,1140,Malta Maritime Authority Ports Directorate, Malta +125,MH,1150,Ministry of Resources and Development, Marshall Islands +126,MR,1160,Ministere de la Defense Nationale, Mauritania +127,MU,1170,Ministry of Housing, Lands and Town and Country Planning, Mauritius +128,MX,1180,Direccion General de Oceanografia Naval, Mexiko +129,FM,1190,Not known, Micronesia (Federated State of) +130,MA,1200,Service Hydrographique et Oceanographique de la Marine Royale, Morocco +131,MZ,1210,Instituto Nacional de Hidrografia e Navegacao, Mozambique +132,MM,1220,Naval Hydrographic Office, Myanmar +133,NA,1230,Not known, Namibia +134,NR,1240,Nauru Phosphate Corporation, Nauru +135,NI,1250,Secretaria de Planificacion y Presupuesto de la Presidencia de la Republica, Instituto Nicaraguense de Estudios Territoriales, Nicaragua +136,PW,1260,Bureau of Domestic Affairs, Palau +137,PA,1270,Instituto Geografico Nacional, Panama +138,PY,1280,Direccion de Hidrografia y Navegacion, Paraguay +139,QA,1290,Ministry of Municipal Affairs and Agriculture, Qatar +140,RO,1300,Directia Hidrografica Maritima, Romania +141,KN,1310,St. Christopher Air and Sea Ports Authority, Hydrographic Service, Saint Kitts and Nevis +142,LC,1320,Ministry of Planning, Personnel Establishment and Training, Saint Lucia +143,VC,1330,Ministry of Communications and Works, Saint Vincent and Grenadines +144,WS,1340,Ministry of Transport, Marine and Shipping Division, Samoa +145,ST,1350,Not known, Sao Tombe and Principe +146,SA,1360,Military Survey Department, Hydrographic Section, Saudi Arabia +147,SN,1370,Ministere de l'Equipement, des Transports et de la Mer, Senegal +148,SC,1380,Hydrographic and Topographic Brigade, Seychelles +149,SL,1390,Department of Transport and Communications, Sierra Leone +150,SI,1400,Not known, Slovenia +151,SB,1410,Solomon Islands Hydrographic Unit, Solomon Islands +152,SO,1420,Somali Hydrographic Office, Marine Department, Ministry of Marine Transports and Ports, Somalia +153,SD,1430,Survey Department, Sudan +154,TZ,1440,Tanzania Harbours Authority, Tanzania +155,TG,1450,University of Benin, Togo +156,TK,1460,Not known, Tokelau +157,TN,1470,Service Hydrographique et Oceanographique, Armee de Mer, Ministere de la Defense Nationale, Tunisia +158,TV,1480,Ministry of Labour, Works and Communications, Tuvalu +159,UA,1490,National Agency of Marine Research and Technology, Ukraine +160,VU,1500,Vanuatu Hydrographic Unit, Vanuata +161,VN,1510,Not known, Vietnam +162,YE,1520,Ministry of Communications, Yemen Ports and Shipping Corporation, Yemen Ports Authority, Yemen +163,QM,1600,Antarctic Treaty Consultative Committee +164,QN,1610,International Radio Consultative Committee +165,QO,1620,Comite International Radio-Maritime +166,QP,1630,IHO Data Centre for Digital Bathymetry +167,QQ,1640,Digital Geographic Information Working Group +168,QR,1650,European Communities Commission +169,QS,1660,European Harbour Masters Association +170,QT,1670,Food and Agriculture Organization +171,QU,1680,Federation Internationale des Geometres +172,QV,1690,International Atomic Energy Agency +173,QW,1700,International Association of Geodesy +174,QX,1710,International Association of Institutes of Navigation +175,QY,1720,International Association of Lighthouse Authorities +176,QZ,1730,International Association of Ports and Harbours +177,XA,1740,International Cartographic Association +178,XB,1750,International Cable Protection Committee +179,XC,1760,International Chamber of Shipping +180,XD,1770,International Commission for the Scientific Exploration of the Mediterranean +181,XE,1780,International Council of Scientific Unions +182,XF,1790,International Electrotechnical Commission +183,XG,1800,International Geographical Union +184,AA,1810,International Hydrographic Organization +185,XH,1820,International Maritime Academy +186,XI,1830,International Maritime Organization +187,XJ,1840,International Maritime Satellite Organization +188,XK,1850,Intergovernmental Oceanographic Commission +189,XL,1860,International Organization for Standardization +190,XM,1870,International Society for Photogrammetry and Remote Sensing +191,XN,1880,International Telecommunication Union +192,XO,1890,International Union of Geodesy and Geophysics +193,XP,1900,International Union of Surveying and Mapping +194,XQ,1910,Oil Companies International Marine Forum +195,XR,1920,Pan American Institute of Geography and History +196,XS,1930,Radio Technical Commission for Maritime Services +197,XT,1940,Scientific Commission on Antarctic Research +198,XU,1950,The Hydrographic Society +199,XV,1960,World Meteorological Organization +200,XW,1970,United Nations, Office for Ocean Affairs and Law of the Sea +201,PM,2020,PRIMAR - European ENC Coordinating Centre +202,1A,6682,ARAMCO +203,1B,0,UKHO test and sample datasets +204,1C,7196,CARIS +205,1D,7453,Amt fuer Geoinformationswesen der Bundeswehr +206,1E,7710,TerraNautical Data, Inc. +207,1F,7967,Force Technology, Danish Maritime Institute +208,1G,7968,_sterreichische Donau-Technik-GmbH +209,1H,7969,Vituki Water Resources Research Centre Hungary +210,1I,7970,Navionics S.p.A. +211,1K,7972,Kingway Technology Co +212,1L,7973,Laser-Scan Ltd +213,1M,7974,Channel of Moscow +214,1N,7975,Nautical Data International, Inc. +215,1O,7976,Offshore Charts Ltd. +216,1P,7977,Port Of London +217,1Q,7978,Quality Positioning Services +218,1R,7979,Rijkswaterstaat +219,1S,7980,Austrian Supreme Shippig Authority +220,1T,7981,UKHO - private production +221,1U,7982,ENC Center, National Taiwan Ocean University +222,1V,7983,The Volga-Baltic State Territorial Department for Waterways Management and Navigation +223,1W,7984,Wasser- und Schiffahrtsverwaltung des Bundes - Wasser- und Schiffahrtsdirektion S_d-West +224,1X,7985,Noorderzon Software +225,2A,10794,Azienda Regionale Navigazione Interna (ARNI) +226,2C,11308,IIC Technologies +227,2I,12056,Innovative Navigation GmbH +228,2M,12060,MARIN (Maritime Research Institute Netherlands) +229,2P,12063,PLOVPUT Beograd +230,2R,12065,Port of Rotterdam +231,2S,12079,Ssangyong Information & Communications Corp. +232,2T,12093,Transas Marine +233,2W,12096,Austrian Waterways Authority +234,3R,16203,A.F.D.J. R.A. Galati +235,3S,16204,Science Applications International Corp. +236,4R,20315,MD Atlantic Technologies +237,3T,16205,Tresco Navigation Systems +238,5M,24422,Hydrographic Office of Sarawak Marine Department +239,5T,24455,TEC Asociados +240,6C,27756,Guoy Consultancy Sdn Bhd +241,7C,31868,SevenCs AG & Co KG +242,7R,32651,The Federal Service of Geodesy and Cartography of Russia +243,7S,32652,Centre Sevzapgeoinform (SZGI) +244,7T,32653,Terra Corp +245,8A,35466,HSA Systems Pty Ltd +246,9A,39578,CherSoft Ltd +247,9T,40877,Tresco Engineering bvba +248,0_,65534,unknown producer diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57attributes.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57attributes.csv new file mode 100644 index 00000000..3b2c04e3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57attributes.csv @@ -0,0 +1,484 @@ +"Code","Attribute","Acronym","Attributetype","Class" +1,Agency responsible for production,AGENCY,A,F +2,Beacon shape,BCNSHP,E,F +3,Building shape,BUISHP,E,F +4,Buoy shape,BOYSHP,E,F +5,Buried depth,BURDEP,F,F +6,Call sign,CALSGN,S,F +7,Category of airport/airfield,CATAIR,L,F +8,Category of anchorage,CATACH,L,F +9,Category of bridge,CATBRG,L,F +10,Category of built-up area,CATBUA,E,F +11,Category of cable,CATCBL,E,F +12,Category of canal,CATCAN,E,F +13,Category of cardinal mark,CATCAM,E,F +14,Category of checkpoint,CATCHP,E,F +15,Category of coastline,CATCOA,E,F +16,Category of control point,CATCTR,E,F +17,Category of conveyor,CATCON,E,F +18,Category of coverage,CATCOV,E,F +19,Category of crane,CATCRN,E,F +20,Category of dam,CATDAM,E,F +21,Category of distance mark,CATDIS,E,F +22,Category of dock,CATDOC,E,F +23,Category of dumping ground,CATDPG,L,F +24,Category of fence/wall,CATFNC,E,F +25,Category of ferry,CATFRY,E,F +26,Category of fishing facility,CATFIF,E,F +27,Category of fog signal,CATFOG,E,F +28,Category of fortified structure,CATFOR,E,F +29,Category of gate,CATGAT,E,F +30,Category of harbour facility,CATHAF,L,F +31,Category of hulk,CATHLK,L,F +32,Category of ice,CATICE,E,F +33,Category of installation buoy,CATINB,E,F +34,Category of land region,CATLND,L,F +35,Category of landmark,CATLMK,L,F +36,Category of lateral mark,CATLAM,E,F +37,Category of light,CATLIT,L,F +38,Category of marine farm/culture,CATMFA,E,F +39,Category of military practice area,CATMPA,L,F +40,Category of mooring/warping facility,CATMOR,E,F +41,Category of navigation line,CATNAV,E,F +42,Category of obstruction,CATOBS,E,F +43,Category of offshore platform,CATOFP,L,F +44,Category of oil barrier,CATOLB,E,F +45,Category of pile,CATPLE,E,F +46,Category of pilot boarding place,CATPIL,E,F +47,Category of pipeline / pipe,CATPIP,L,F +48,Category of production area,CATPRA,E,F +49,Category of pylon,CATPYL,E,F +50,Category of quality of data,CATQUA,E,F +51,Category of radar station,CATRAS,E,F +52,Category of radar transponder beacon,CATRTB,E,F +53,Category of radio station,CATROS,L,F +54,Category of recommended track,CATTRK,E,F +55,Category of rescue station,CATRSC,L,F +56,Category of restricted area,CATREA,L,F +57,Category of road,CATROD,E,F +58,Category of runway,CATRUN,E,F +59,Category of sea area,CATSEA,E,F +60,Category of shoreline construction,CATSLC,E,F +61,"Category of signal station, traffic",CATSIT,L,F +62,"Category of signal station, warning",CATSIW,L,F +63,Category of silo/tank,CATSIL,E,F +64,Category of slope,CATSLO,E,F +65,Category of small craft facility,CATSCF,L,F +66,Category of special purpose mark,CATSPM,L,F +67,Category of Traffic Separation Scheme,CATTSS,E,F +68,Category of vegetation,CATVEG,L,F +69,Category of water turbulence,CATWAT,E,F +70,Category of weed/kelp,CATWED,E,F +71,Category of wreck,CATWRK,E,F +72,Category of zone of confidence data,CATZOC,E,F +73,Character spacing,$SPACE,E,$ +74,Character specification,$CHARS,A,$ +75,Colour,COLOUR,L,F +76,Colour pattern,COLPAT,L,F +77,Communication channel,COMCHA,A,F +78,Compass size,$CSIZE,F,$ +79,Compilation date,CPDATE,A,F +80,Compilation scale,CSCALE,I,F +81,Condition,CONDTN,E,F +82,"Conspicuous, Radar",CONRAD,E,F +83,"Conspicuous, visual",CONVIS,E,F +84,Current velocity,CURVEL,F,F +85,Date end,DATEND,A,F +86,Date start,DATSTA,A,F +87,Depth range value 1,DRVAL1,F,F +88,Depth range value 2,DRVAL2,F,F +89,Depth units,DUNITS,E,F +90,Elevation,ELEVAT,F,F +91,Estimated range of transmission,ESTRNG,F,F +92,Exhibition condition of light,EXCLIT,E,F +93,Exposition of sounding,EXPSOU,E,F +94,Function,FUNCTN,L,F +95,Height,HEIGHT,F,F +96,Height/length units,HUNITS,E,F +97,Horizontal accuracy,HORACC,F,F +98,Horizontal clearance,HORCLR,F,F +99,Horizontal length,HORLEN,F,F +100,Horizontal width,HORWID,F,F +101,Ice factor,ICEFAC,F,F +102,Information,INFORM,S,F +103,Jurisdiction,JRSDTN,E,F +104,Justification - horizontal,$JUSTH,E,$ +105,Justification - vertical,$JUSTV,E,$ +106,Lifting capacity,LIFCAP,F,F +107,Light characteristic,LITCHR,E,F +108,Light visibility,LITVIS,L,F +109,Marks navigational - System of,MARSYS,E,F +110,Multiplicity of lights,MLTYLT,I,F +111,Nationality,NATION,A,F +112,Nature of construction,NATCON,L,F +113,Nature of surface,NATSUR,L,F +114,Nature of surface - qualifying terms,NATQUA,L,F +115,Notice to Mariners date,NMDATE,A,F +116,Object name,OBJNAM,S,F +117,Orientation,ORIENT,F,F +118,Periodic date end,PEREND,A,F +119,Periodic date start,PERSTA,A,F +120,Pictorial representation,PICREP,S,F +121,Pilot district,PILDST,S,F +122,Producing country,PRCTRY,A,F +123,Product,PRODCT,L,F +124,Publication reference,PUBREF,S,F +125,Quality of sounding measurement,QUASOU,L,F +126,Radar wave length,RADWAL,A,F +127,Radius,RADIUS,F,F +128,Recording date,RECDAT,A,F +129,Recording indication,RECIND,A,F +130,Reference year for magnetic variation,RYRMGV,A,F +131,Restriction,RESTRN,L,F +132,Scale maximum,SCAMAX,I,F +133,Scale minimum,SCAMIN,I,F +134,Scale value one,SCVAL1,I,F +135,Scale value two,SCVAL2,I,F +136,Sector limit one,SECTR1,F,F +137,Sector limit two,SECTR2,F,F +138,Shift parameters,SHIPAM,A,F +139,Signal frequency,SIGFRQ,I,F +140,Signal generation,SIGGEN,E,F +141,Signal group,SIGGRP,A,F +142,Signal period,SIGPER,F,F +143,Signal sequence,SIGSEQ,A,F +144,Sounding accuracy,SOUACC,F,F +145,Sounding distance - maximum,SDISMX,I,F +146,Sounding distance - minimum,SDISMN,I,F +147,Source date,SORDAT,A,F +148,Source indication,SORIND,A,F +149,Status,STATUS,L,F +150,Survey authority,SURATH,S,F +151,Survey date - end,SUREND,A,F +152,Survey date - start,SURSTA,A,F +153,Survey type,SURTYP,L,F +154,Symbol scaling factor,$SCALE,F,$ +155,Symbolization code,$SCODE,A,$ +156,Technique of sounding measurement,TECSOU,L,F +157,Text string,$TXSTR,S,$ +158,Textual description,TXTDSC,S,F +159,Tidal stream - panel values,TS_TSP,A,F +160,"Tidal stream, current - time series values",TS_TSV,A,F +161,Tide - accuracy of water level,T_ACWL,E,F +162,Tide - high and low water values,T_HWLW,A,F +163,Tide - method of tidal prediction,T_MTOD,E,F +164,Tide - time and height differences,T_THDF,A,F +165,"Tide, current - time interval of values",T_TINT,I,F +166,Tide - time series values,T_TSVL,A,F +167,Tide - value of harmonic constituents,T_VAHC,A,F +168,Time end,TIMEND,A,F +169,Time start,TIMSTA,A,F +170,Tint,$TINTS,E,$ +171,Topmark/daymark shape,TOPSHP,E,F +172,Traffic flow,TRAFIC,E,F +173,Value of annual change in magnetic variation,VALACM,F,F +174,Value of depth contour,VALDCO,F,F +175,Value of local magnetic anomaly,VALLMA,F,F +176,Value of magnetic variation,VALMAG,F,F +177,Value of maximum range,VALMXR,F,F +178,Value of nominal range,VALNMR,F,F +179,Value of sounding,VALSOU,F,F +180,Vertical accuracy,VERACC,F,F +181,Vertical clearance,VERCLR,F,F +182,"Vertical clearance, closed",VERCCL,F,F +183,"Vertical clearance, open",VERCOP,F,F +184,"Vertical clearance, safe",VERCSA,F,F +185,Vertical datum,VERDAT,E,F +186,Vertical length,VERLEN,F,F +187,Water level effect,WATLEV,E,F +188,Category of Tidal stream,CAT_TS,E,F +189,Positional accuracy units,PUNITS,E,F +190,Object class definition,CLSDEF,S,F +191,Object class name,CLSNAM,S,F +192,Symbol instruction,SYMINS,S,F +300,Information in national language,NINFOM,S,N +301,Object name in national language,NOBJNM,S,N +302,Pilot district in national language,NPLDST,S,N +303,Text string in national language,$NTXST,S,N +304,Textual description in national language,NTXTDS,S,N +400,Horizontal datum,HORDAT,E,S +401,Positional Accuracy,POSACC,F,S +402,Quality of position,QUAPOS,E,S +0,"###Codes in the 17xxx range come from past s57attributes_iw.csv (Inland Waterways)",###,S,F +17000,Category of Anchorage area,catach,L,F +17001,Category of distance mark,catdis,E,F +17002,Category of signal station trafficcatsit,catsit,L,F +17003,Category of signal station warning,catsiw,L,F +17004,Restriction,restrn,L,F +17005,Vertical datum,verdat,E,F +17006,Category of bridge,catbrg,L,F +17007,Category of ferry,catfry,L,F +17008,Category of harbour facilities,cathaf,L,F +17009,"Marks navigational – System of",marsys,E,F +17050,Additional mark,addmrk,L,F +17051,Category of bank,catbnk,E,F +17052,Category of notice mark,catnmk,E,F +17055,Class of dangerous cargo,clsdng,E,F +17056,Direction of impact,dirimp,L,F +17057,Distance from bank,disbk1,F,F +17058,Distance from bank,disbk2,F,F +17059,"Distance of impact, upstream",disipu,F,F +17060,"Distance of impact, downstream",disipd,F,F +17061,Elevation 1,eleva1,F,F +17062,Elevation 2,eleva2,F,F +17063,Function of notice mark,fnctnm,E,F +17064,Waterway distance,wtwdis,F,F +17065,Bunker vessel,bunves,E,F +17066,Category of berth,catbrt,L,F +17067,Category of bunker,catbun,L,F +17068,Category of CEMT class,catccl,L,F +17069,Category of communication,catcom,L,F +17070,Category of harbour area,cathbr,L,F +17071,Category of refuse dump,catrfd,L,F +17072,Category of terminal,cattml,L,F +17073,Communication,comctn,S,F +17074,"Horizontal clearance, length",horcll,F,F +17075,"Horizontal clearance, width",horclw,F,F +17076,Transshipping goods,trshgd,L,F +17077,UN Location Code,unlocd,S,F +17112,Category of waterway mark,catwwm,E,F +0,"###Codes in the 20xxx and 22xxx range come from past s57attributes_aml.csv (Additional_Military_Layers)",###,S,F +20484,"Abandonment Date","databa","A","?" +20485,"Attenuation","attutn","F","?" +20486,"Beam of Vessel","vesbem","F","?" +20487,"Bearing","bearng","F","?" +20488,"Blind Zone","blndzn","A","?" +20489,"Breaker Type","brktyp","E","?" +20490,"Density","bulkdn","F","?" +20491,"Burial Mechanism","brmchm","E","?" +20492,"Burial Percentage","brpctg","I","?" +20493,"Burial Period","brperd","I","?" +20494,"Burial Probability","brprob","E","?" +20495,"Cardinal Point Orientation","orcard","E","?" +20496,"Category of administration area","catadm","E","?" +20497,"Category of airspace restriction","catasr","E","?" +20498,"Category of bedrock","N/A","N/A","?" +20499,"Bottom Feature Classification","catbot","E","?" +20500,"Category of coastguard station","catcgs","E","?" +20501,"Category of controlled airspace","catcas","E","?" +20502,"Fishing Activity","catfsh","E","?" +20503,"Type of Imagery","catimg","L","?" +20504,"Category of marine management area","catmma","E","?" +20505,"Category of maritime safety information","catmsi","E","?" +20506,"Category of military exercise airspace ","catmea","E","?" +20507,"Category of patrol area","catpat","E","?" +20508,"Category of reporting/radio calling-in point","catrep","E","?" +20509,"Category of regulated airspace","N/A","N/A","?" +20510,"Category of territorial sea baseline","catsbl","E","?" +20511,"Trafficability","cattrf","E","?" +20512,"Command System","comsys","S","?" +20515,"Controlled airspace class designation","caircd","E","?" +20516,"Controlling authority","authty","S","?" +20517,"Current Scour Dimensions","scrdim","A","?" +20518,"Dangerous Marine and Land Life","dgmrlf","L","?" +20519,"Date Sunk","datsnk","A","?" +20520,"Debris Field","debfld","A","?" +20521,"Depth of Activity","depact","F","?" +20522,"Depth of Layer","deplyr","F","?" +20523,"Distance from Small Bottom Object","discon","F","?" +20524,"Diver’s Thrust Test Depth","dttdep","E","?" +20525,"Diver’s Thrust Test Number","dttnum","I","?" +20526,"Diving Activity","divact","E","?" +20527,"Draught of Vessel","vesdgh","F","?" +20528,"Exit Usability","exitus","E","?" +20529,"Field Name","fldnam","S","?" +20530,"First Detection Year","datfir","A","?" +20531,"First Sensor","senfir","E","?" +20532,"First Source","sorfir","E","?" +20533,"Foliar Index","folinx","F","?" +20534,"Gas Content","gascon","I","?" +20535,"General Water Depth","gendep","I","?" +20536,"Gradient","gradnt","E","?" +20537,"Grain Size","grnsiz","F","?" +20538,"Inclination","incltn","F","?" +20539,"Internal Data Record Identification Number","N/A","N/A","?" +20540,"Last Detection Year","datlst","A","?" +20541,"Last Sensor","senlst","E","?" +20542,"Last Source","sorlst","E","?" +20543,"Lay Platform","layptm","E","?" +20544,"Lay Reference Number","layrfn","S","?" +20545,"Lay Time","laytim","A","?" +20546,"Layer Number","laynum","I","?" +20547,"Legal Status","legsta","S","?" +20548,"Length of Vessel","veslen","F","?" +20549,"Magnetic Anomaly Detector (MAD) Signature","madsig","E","?" +20550,"Magnetic Intensity","magint","I","?" +20551,"Mean Shear Strength","msstrg","F","?" +20552,"Migration Direction","migdir","I","?" +20553,"Migration Speed","migspd","F","?" +20554,"Milec Density","milden","E","?" +20555,"Mine Index Mine Case","mnimnc","E","?" +20556,"Mine Index Mine Type","mnimnt","L","?" +20557,"Mine Reference Number","minern","S","?" +20558,"Mine-Hunting Classification","mhclas","E","?" +20559,"Minehunting System","mnhsys","S","?" +20560,"Minesweeping System","mnssys","S","?" +20561,"Mission Classification","miscls","E","?" +20562,"Mission Comments","miscom","S","?" +20563,"Mission Date","misdat","A","?" +20564,"Mission Name","misnme","S","?" +20565,"MWDC Reference Number","mwdcrn","S","?" +20566,"Nature of Geological Layer","natsed","E","?" +20567,"Navigation System","navsys","S","?" +20568,"NOMBO Density","nomden","E","?" +20569,"Not Found","notfnd","S","?" +20570,"Number of Previous Observations","nmprob","I","?" +20571,"Operator","oprtor","S","?" +20572,"Orientation of Best Observation","orbobn","F","?" +20573,"Origin of Data","orgdat","E","?" +20574,"Originator","orgntr","S","?" +20575,"Porosity","porsty","I","?" +20576,"Quality of Beach Data","quabch","A","?" +20577,"Re-entered Date","datren","A","?" +20578,"Re-suspended Date","datres","A","?" +20579,"Reverberation","revebn","E","?" +20580,"Safety Zone","N/A","N/A","?" +20581,"Sample Retained","samret","S","?" +20582,"Seabed Coverage","sbdcov","I","?" +20583,"Ships Speed","shpspd","F","?" +20584,"Sonar Frequency","snrfrq","E","?" +20585,"Sonar Range Scale","snrrsc","F","?" +20586,"Sonar Reflectivity","snrflc","E","?" +20587,"Sonar Signal Strength","sonsig","E","?" +20588,"Sound Velocity","sndvel","F","?" +20589,"Sounding Datum","soudat","E","?" +20590,"Spudded Date","datspd","A","?" +20592,"Steepest Face Orientation","stfotn","F","?" +20593,"Strength According to Richter Scale","ricsca","I","?" +20594,"Strength of Magnetic Anomaly","magany","E","?" +20595,"Suitability for ACV Use","stbacv","E","?" +20596,"Surf Height","srfhgt","F","?" +20597,"Surf Zone","srfzne","I","?" +20598,"Survey Date and Time","surdat","A","?" +20599,"Suspension Date","datsus","A","?" +20600,"Swell Height","swlhgt","F","?" +20601,"Tidal Range","tdlrng","F","?" +20602,"Time of Year","timeyr","L","?" +20603,"Tonnage","tonage","I","?" +20604,"Towed Body Depth","twdbdp","F","?" +20605,"Type of military activity","milact","L","?" +20606,"Type of Tonnage","typton","E","?" +20607,"Type of Wreck","typewk","E","?" +20608,"Underwater Reference Mark","unwrfm","E","?" +20609,"Unique ID from a Navigational Product","N/A","N/A","?" +20610,"Water Clarity","watclr","F","?" +20611,"Wavelength","wavlen","F","?" +20612,"Weight Bearing Capability","wbrcap","I","?" +20613,"Width (left)","lftwid","F","?" +20614,"Width (right)","rgtwid","F","?" +20615,"Contour Type","hypcat","E","?" +20616,"Sounding Velocity","souvel","E","?" +20617,"Access Restriction","accres","S","?" +20618,"Approach","apprch","S","?" +20619,"Category of Beach","catbch","E","?" +20620,"Clearance Percentage","clperc","I","?" +20621,"Communications","commns","L","?" +20622,"Confidence Level","conlev","F","?" +20624,"Exit Description","extdes","S","?" +20625,"Industry","indtry","S","?" +20626,"Landing Conditions","lndcon","S","?" +20627,"Leisure Activity","lsract","S","?" +20628,"Logistics","logtcs","L","?" +20629,"Manoeuvring","manvrg","S","?" +20630,"Mine Threat Density","mntden","I","?" +20631,"Multiple Contacts","mulcon","I","?" +20632,"Navigational Description","navdes","S","?" +20633,"Navigational Difficulty","navdif","E","?" +20634,"Number of Remaining Mines","numrmn","I","?" +20635,"Pier Contact Details","pierod","S","?" +20636,"Pier Description","pierdn","S","?" +20637,"Prairies Density","prsden","I","?" +20638,"Probability for Remaining Mines","prbrmn","F","?" +20639,"Remaining Mines Likely, Maximum Number","rmnlmn","I","?" +20640,"Self Protection (Air)","sfptna","E","?" +20641,"Self Protection (Near Defence)","sptnnd","E","?" +20642,"Self Protection (Surface)","sfptns","E","?" +20643,"Sensor Coverage","sencov","S","?" +20644,"Simple Initial Threat","sminth","F","?" +20645,"Target Reference Weight","tgrfwt","E","?" +20646,"Tidal Type","tdltyp","E","?" +20647,"Type of Resource Location","typres","E","?" +20648,"Undetectable Mines Ratio","undmnr","F","?" +20649,"Undetectable Mines Ratio with Burial","umnrwb","F","?" +20650,"Undetectable Mines Ratio without Burial","umrwob","F","?" +20651,"Weapon Coverage","wpncov","S","?" +20652,"On Sonar","onsonr","E","?" +20653,"HF Bottom Loss","hfbmls","F","?" +20654,"LF Bottom Loss","lfbmls","F","?" +20655,"Detection Probability","dtprob","F","?" +20656,"Disposal Probability","dsprob","F","?" +20657,"Classification Probability","clprob","F","?" +20658,"Characteristic Detection Width (A)","cswidt","I","?" +20659,"Characteristic Detection Probability (B)","csprob","F","?" +20660,"Zone Colour","znecol","E","?" +20661,"Reverberation Frequency","revfqy","F","?" +20662,"Reverberation Grazing Angle","revgan","F","?" +20663,"International Defence Organisation (IDO) status","secido","E","?" +20664,"Protective Marking","secpmk","E","?" +20665,"Owner Authority","secown","S","?" +20666,"Caveat ","seccvt","S","?" +20667,"Species","spcies","S","?" +20668,"Swept date","swpdat","A","?" +20669,"Runway length","rwylen","I","?" +20670,"Active period","actper","S","?" +20671,"Maximum altitude","maxalt","I","?" +20672,"Minimum altitude","minalt","I","?" +20673,"Maximum Flight Level","maxftl","I","?" +20674,"Minimum Flight Level","minftl","I","?" +20675,"Bottom Vertical Safety Separation","bverss","I","?" +20676,"Minimum Safe Depth","mindep","I","?" +20677,"Interpolated line characteristic","linech","E","?" +20678,"Identification","identy","S","?" +20679,"Route Classification","rclass","E","?" +20680,"Population","popltn","I","?" +20681,"Surface Threat","surtht","E","?" +20682,"Heading-Up Bearing","upbear","F","?" +20683,"Heading-Down Bearing","dnbear","F","?" +20684,"Ice Concentration","icencn","I","?" +20685,"Danger height","dgrhgt","I","?" +20686,"Depth Restriction","depres","S","?" +20687,"Area Category","arecat","E","?" +20688,"Existence of Restricted Area","exzres","E","?" +20689,"Target Strength","tarstg","I","?" +20690,"Qualification of Radar Coverage","quarad","I","?" +20691,"Contact Details","condet","S","?" +20692,"Limit of Anchors and Chains","limanc","F","?" +20693,"CCM Index","ccmidx","I","?" +20694,"Military Load Classification","mlclas","E","?" +20695,"MGS Type","mgstyp","E","?" +20696,"Ice Attribute Concentration Total","iceact","E","?" +20697,"Ice Stage of Development","icesod","E","?" +20698,"Ice Advisory Code","iceadc","S","?" +20699,"Number of Icebergs in Area","icebnm","I","?" +20700,"Ice Line Category","icelnc","E","?" +20701,"Ice Polynya Type","icepty","E","?" +20702,"Ice Polynya Status","icepst","E","?" +20703,"Ice Lead Type","icelty","E","?" +20704,"Ice Lead Status","icelst","E","?" +20705,"Iceberg Size","icebsz","E","?" +20706,"Iceberg Shape","icebsh","E","?" +20707,"Icedrift or Iceberg Direction","icebdr","E","?" +20708,"Icedrift or Iceberg Speed","icebsp","F","?" +20709,"Maximum Ice Thickness","icemax","F","?" +20710,"Minimum Ice Thickness","icemin","F","?" +20711,"Ice Ridge Development","icerdv","E","?" +20712,"Land Ice","icelnd","E","?" +20713,"Sea Direction","seadir","E","?" +20714,"Traffic density","traden","S","?" +20715,"Type of shipping","typshp","L","?" +20716,"Ice Coverage Type","icecvt","E","?" +20718,"Status of Small Bottom Object","staobj","L","?" +20719,"ICAO code","icaocd","S","?" +20720,"textual description","txtdes","S","?" +20721,"Object Reference Number","objtrn","S","?" +20722,"Object Shape","objshp","S","?" +22484,"Category of completeness","catcnf","E","?" +22485,"Error Ellipse","errell","A","?" +22486,"Object classes","N/A","N/A","?" +22487,"Security classification","N/A","N/A","?" +22488,"Vertical Datum Shift Parameter","vershf","F","?" +22489,"Absolute Vertical Accuracy","elvacc","F","?" +22490,"Reflection Coefficient","reflco","F","?" +22491,"Copyright statement","cpyrit","S","?" +0,"###40000 comes from past s57attributes_iw.csv (Inland Waterways)",###,S,F +40000,Update message,updmsg,S,F diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv new file mode 100644 index 00000000..e71249f3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv @@ -0,0 +1,1008 @@ +"Code","ID","Meaning" +2,1,"stake, pole, perch, post" +2,2,whity +2,3,beacon tower +2,4,lattice beacon +2,5,pile beacon +2,6,cairn +2,7,buoyant beacon +3,5,high-rise building +3,6,pyramid +3,7,cylindrical +3,8,spherical +3,9,cubic +4,1,"conical (nun, ogival)" +4,2,can (cylindrical) +4,3,spherical +4,4,pillar +4,5,spar (spindle) +4,6,barrel (tun) +4,7,super-buoy +4,8,ice buoy +7,1,military aeroplane airport +7,2,civil aeroplane airport +7,3,military heliport +7,4,civil heliport +7,5,glider airfield +7,6,small planes airfield +7,8,emergency airfield +8,1,unrestricted anchorage +8,2,deep water anchorage +8,3,tanker anchorage +8,4,explosives anchorage +8,5,quarantine anchorage +8,6,sea-plane anchorage +8,7,small craft anchorage +8,8,small craft mooring area +8,9,anchorage for periods up to 24 hours +9,1,fixed bridge +9,2,opening bridge +9,3,swing bridge +9,4,lifting bridge +9,5,bascule bridge +9,6,pontoon bridge +9,7,draw bridge +9,8,transporter bridge +9,9,footbridge +9,10,viaduct +9,11,aqueduct +9,12,suspension bridge +10,1,urban area +10,2,settlement +10,3,village +10,4,town +10,5,city +10,6,holiday village +11,1,power line +11,3,transmission line +11,4,telephone +11,5,telegraph +11,6,mooring cable/chain +12,1,transportation +12,2,drainage +12,3,irrigation +13,1,north cardinal mark +13,2,east cardinal mark +13,3,south cardinal mark +13,4,west cardinal mark +14,1,custom +15,1,steep coast +15,2,flat coast +15,3,sandy shore +15,4,stony shore +15,5,shingly shore +15,6,glacier (seaward end) +15,7,mangrove +15,8,marshy shore +15,9,coral reef +15,10,ice coast +16,1,triangulation point +16,2,observation spot +16,3,fixed point +16,4,bench-mark +16,5,boundary mark +16,6,"horizontal control, main station" +16,7,"horizontal control, secondary station" +17,1,aerial cableway (telepheric) +17,2,belt conveyor +18,1,coverage available +18,2,no coverage available +19,2,container crane/gantry +19,3,sheerlegs +19,4,travelling crane +19,5,A-frame +20,1,weir +20,2,dam +20,3,flood barrage +21,1,distance mark not physically installed +21,2,"visible mark, pole" +21,3,"visible mark, board" +21,4,"visible mark, unknown shape" +22,1,tidal +22,2,non-tidal (wet dock) +23,2,chemical waste dumping ground +23,3,nuclear waste dumping ground +23,4,explosives dumping ground +23,5,spoil ground +23,6,vessel dumping ground +24,1,fence +24,3,hedge +24,4,wall +25,1,'free-moving' ferry +25,2,cable ferry +25,3,ice ferry +26,1,fishing stake +26,2,fish trap +26,3,fish weir +26,4,tunny net +27,1,explosive +27,2,diaphone +27,3,siren +27,4,nautophone +27,5,reed +27,6,tyfon +27,7,bell +27,8,whistle +27,9,gong +27,10,horn +28,1,castle +28,2,fort +28,3,battery +28,4,blockhouse +28,5,Martello tower +29,2,flood barrage gate +29,3,caisson +29,4,lock gate +29,5,dyke gate +30,1,RoRo-terminal +30,3,ferry terminal +30,4,fishing harbour +30,5,yacht harbour/marina +30,6,naval base +30,7,tanker terminal +30,8,passenger terminal +30,9,shipyard +30,10,container terminal +30,11,bulk terminal +31,1,floating restaurant +31,2,historic ship +31,3,museum +31,4,accomodation +31,5,floating breakwater +32,1,fast ice +32,5,glacier +32,8,polar ice +33,1,catenary anchor leg mooring (CALM) +33,2,single buoy mooring (SBM or SPM) +34,1,fen +34,2,marsh +34,3,moor/bog +34,4,heathland +34,5,mountain range +34,6,lowlands +34,7,canyon lands +34,8,paddy field +34,9,agricultural land +34,10,savanna/grassland +34,11,parkland +34,12,swamp +34,13,landslide +34,14,lava flow +34,15,salt pan +34,16,moraine +34,17,crater +34,18,cave +34,19,rock column or pinnacle +35,1,cairn +35,2,cemetery +35,3,chimney +35,4,dish aerial +35,5,flagstaff (flagpole) +35,6,flare stack +35,7,mast +35,8,windsock +35,9,monument +35,10,column (pillar) +35,11,memorial plaque +35,12,obelisk +35,13,statue +35,14,cross +35,15,dome +35,16,radar scanner +35,17,tower +35,18,windmill +35,19,windmotor +35,20,spire/minaret +36,1,port-hand lateral mark +36,2,starboard-hand lateral mark +36,3,preferred channel to starboard lateral mark +36,4,preferred channel to port lateral mark +37,1,directional function +37,4,leading light +37,5,aero light +37,6,air obstruction light +37,7,fog detector light +37,8,flood light +37,9,strip light +37,10,subsidiary light +37,11,spotlight +37,12,front +37,13,rear +37,14,lower +37,15,upper +37,16,moiré effect +37,17,emergency +37,18,bearing light +37,19,horizontally disposed +37,20,vertically disposed +38,1,crustaceans +38,2,oyster/mussels +38,3,fish +38,4,seaweed +39,2,torpedo exercise area +39,3,submarine exercise area +39,4,firing danger area +39,5,mine-laying practice area +39,6,small arms firing range +40,1,dolphin +40,2,deviation dolphin +40,3,bollard +40,4,tie-up wall +40,5,post or pile +40,6,chain/wire/cable +40,7,mooring buoy +41,1,clearing line +41,2,transit line +41,3,leading line bearing a recommended track +42,1,snag / stump +42,2,wellhead +42,3,diffuser +42,4,crib +42,5,fish haven +42,6,foul area +42,7,foul ground +42,8,ice boom +42,9,ground tackle +43,1,oil derrick / rig +43,2,production platform +43,3,observation / research platform +43,4,articulated loading platform (ALP) +43,5,single anchor leg mooring (SALM) +43,6,mooring tower +43,7,artificial island +43,8,"floating production, storage and off-loading vessel (FPSO)" +43,9,accomodation platform +43,10,"navigation, communication and control buoy (NCCB)" +44,1,oil retention (high pressure pipe) +44,2,floating oil barrier +45,1,stake +45,3,post +45,4,tripodal +46,1,boarding by pilot-cruising vessel +46,2,boarding by helicopter +46,3,pilot comes out from shore +47,2,outfall pipe +47,3,intake pipe +47,4,sewer +47,5,bubbler system +47,6,supply pipe +48,1,quarry +48,2,mine +48,3,stockpile +48,4,power station area +48,5,refinery area +48,6,timber yard +48,7,factory area +48,8,tank farm +48,9,wind farm +49,1,power transmission pylon/pole +49,2,telephone/telegraph pylon/pole +49,3,aerial cableway/sky pylon +49,4,bridge pylon/tower +49,5,bridge pier +50,1,data quality A +50,2,data quality B +50,3,data quality C +50,4,data quality D +50,5,data quality E +50,6,quality not evaluated +51,1,radar surveillance station +51,2,coast radar station +52,1,"ramark, radar beacon transmitting continuously" +52,2,"racon, radar transponder beacon" +52,3,leading racon/radar transponder beacon +53,1,circular (non-directional) marine or aero-marine radiobeacon +53,2,directional radiobeacon +53,3,rotating-pattern radiobeacon +53,4,Consol beacon +53,5,radio direction-finding station +53,6,coast radio station providing QTG service +53,7,aeronautical radiobeacon +53,8,Decca +53,9,Loran C +53,10,Differential GPS +53,11,Toran +53,12,Omega +53,13,Syledis +53,14,Chaika (Chayka) +54,1,based on a system of fixed marks +54,2,not based on a system of fixed marks +55,1,rescue station with lifeboat +55,2,rescue station with rocket +55,4,refuge for shipwrecked mariners +55,5,refuge for intertidal area walkers +55,6,lifeboat lying at a mooring +56,1,offshore safety zone +56,4,nature reserve +56,5,bird sanctuary +56,6,game preserve +56,7,seal sanctuary +56,8,degaussing range +56,9,military area +56,10,historic wreck area +56,12,navigational aid safety zone +56,14,minefield +56,18,swimming area +56,19,waiting area +56,20,research area +56,21,dredging area +56,22,fish sanctuary +56,23,ecological reserve +56,24,no wake area +56,25,swinging area +57,1,motorway +57,2,major road +57,3,minor road +57,4,track / path +57,5,major street +57,6,minor street +57,7,crossing +58,1,aeroplane +58,2,helicopter landing pad +59,2,gat +59,3,bank +59,4,deep +59,5,bay +59,6,trench +59,7,basin +59,8,mud flats +59,9,reef +59,10,ledge +59,11,canyon +59,12,narrows +59,13,shoal +59,14,knoll +59,15,ridge +59,16,seamount +59,17,pinnacle +59,18,abyssal plain +59,19,plateau +59,20,spur +59,21,shelf +59,22,trough +59,23,saddle +59,24,abyssal hills +59,25,apron +59,26,archipelagic apron +59,27,borderland +59,28,continental margin +59,29,continental rise +59,30,escarpment +59,31,fan +59,32,fracture zone +59,33,gap +59,34,guyot +59,35,hill +59,36,hole +59,37,levee +59,38,median valley +59,39,moat +59,40,mountains +59,41,peak +59,42,province +59,43,rise +59,44,seachannel +59,45,seamount chain +59,46,shelf edge +59,47,sill +59,48,slope +59,49,terrace +59,50,valley +59,51,canal +59,52,lake +59,53,river +60,1,breakwater +60,2,groyne (groin) +60,3,mole +60,4,pier ( jetty) +60,5,promenadepier +60,6,wharf (quay) +60,7,training wall +60,8,rip rap +60,9,revetment +60,10,sea wall +60,11,landing steps +60,12,ramp +60,13,slipway +60,14,fender +60,15,solid face wharf +60,16,open face wharf +61,1,port control +61,2,port entry and departure +61,3,International Port Traffic +61,4,berthing +61,5,dock +61,6,lock +61,7,flood barrage +61,8,bridge passage +61,9,dredging +62,1,danger +62,2,maritime obstruction +62,3,cable +62,4,military practice +62,5,distress +62,6,weather +62,7,storm +62,8,ice +62,9,time +62,10,tide +62,11,tidal stream +62,12,tide gauge +62,13,tide scale +62,14,diving +63,1,silo in general +63,2,tank in general +63,3,grain elevator +63,4,water tower +64,1,cutting +64,2,embankment +64,3,dune +64,4,hill +64,5,pingo +64,6,cliff +64,7,scree +65,1,visitor`s berth +65,2,nautical club +65,3,boat hoist +65,4,sailmaker +65,5,boatyard +65,6,public inn +65,7,restaurant +65,8,chandler +65,9,provisions +65,10,doctor +65,11,pharmacy +65,12,water tap +65,13,fuel station +65,14,electricity +65,15,bottle gas +65,16,showers +65,17,launderette +65,18,public toilets +65,19,post box +65,20,public telephone +65,21,refuse bin +65,22,car park +65,23,parking for boats and trailers +65,24,caravan site +65,25,camping site +65,26,sewerage pump-out station +65,27,emergency telephone +65,28,landing / launching place for boats +65,29,visitors mooring +65,30,scrubbing berth +65,31,picnic area +66,1,firing danger area mark +66,2,target mark +66,3,marker ship mark +66,4,degaussing range mark +66,5,barge mark +66,6,cable mark +66,7,spoil ground mark +66,8,outfall mark +66,9,ODAS (Ocean-Data-Acquisition-System) +66,10,recording mark +66,11,seaplane anchorage mark +66,12,recreation zone mark +66,13,private mark +66,14,mooring mark +66,15,LANBY (Large Automatic Navigational Buoy) +66,16,leading mark +66,17,measured distance mark +66,18,notice mark +66,19,TSS mark (Traffic Separation Scheme) +66,20,anchoring prohibited mark +66,21,berthing prohibited mark +66,22,overtaking prohibited mark +66,23,two-way traffic prohibited mark +66,24,'reduced wake' mark +66,25,speed limit mark +66,26,stop mark +66,27,general warning mark +66,28,'sound ship's siren' mark +66,29,restricted vertical clearence mark +66,30,maximum vessel's draught mark +66,31,restricted horizontal clearance mark +66,32,strong current warning mark +66,33,berthing permitted mark +66,34,overhead power cable mark +66,35,'channel edge gradient' mark +66,36,telephone mark +66,37,ferry crossing mark +66,39,pipline mark +66,40,anchorage mark +66,41,clearing mark +66,42,control mark +66,43,diving mark +66,44,refuge beacon +66,45,foul ground mark +66,46,yachting mark +66,47,heliport mark +66,48,GPS mark +66,49,seaplane landing mark +66,50,entry prohibited mark +66,51,work in progress mark +66,52,mark with unknown purpose +67,1,IMO - adopted +67,2,not IMO - adopted +68,1,grassland +68,3,bush +68,4,deciduous wood +68,5,coniferous wood +68,6,wood in general (inc mixed wood) +68,7,mangroves +68,10,mixed crops +68,11,reed +68,12,moos +68,13,tree in general +68,14,evergreen tree +68,15,coniferous tree +68,16,palm tree +68,17,nipa palm tree +68,18,casuarina tree +68,19,eucalypt tree +68,20,deciduous tree +68,21,mangrove tree +68,22,filao tree +69,1,breakers +69,2,eddies +69,3,overfalls +69,4,tide rips +69,5,bombora +70,1,kelp +70,2,sea weed +70,3,sea grass +70,4,saragasso +71,1,non-dangerous wreck +71,2,dangerous wreck +71,3,distributed remains of wreck +71,4,wreck showing mast/masts +71,5,wreck showing any portion of hull or superstructure +72,1,zone of confidence A1 +72,2,zone of confidence A2 +72,3,zone of confidence B +72,4,zone of confidence C +72,5,zone of confidence D +72,6,zone of confidence U (data not assessed) +73,1,expanded/condensed +73,2,standard +75,1,white +75,2,black +75,3,red +75,4,green +75,5,blue +75,6,yellow +75,7,grey +75,8,brown +75,9,amber +75,10,violet +75,11,orange +75,12,magenta +75,13,pink +76,1,horizontal stripes +76,2,vertical stripes +76,3,diagonal stripes +76,4,squared +76,5,stripes (direction unknown) +76,6,border stripes +81,1,under construction +81,2,ruined +81,3,under reclamation +81,4,wingless +81,5,planned construction +82,1,radar conspicuous +82,2,not radar conspicuous +82,3,radar conspicuous (has radar reflector) +83,1,visual conspicuous +83,2,not visual conspicuous +89,1,metres +89,2,fathoms and feet +89,3,feet +89,4,fathoms and fractions +92,1,light shown without change of character +92,2,daytime light +92,3,fog light +92,4,night light +93,1,within the range of depth of the surrounding depth area +93,2,shoaler than range of depth of the surrounding depth area +93,3,deeper than range of depth of the surrounding depth area +94,2,harbour-master's office +94,3,custom office +94,4,health office +94,5,hospital +94,6,post office +94,7,hotel +94,8,railway station +94,9,police station +94,10,water-police station +94,11,pilot office +94,12,pilot lookout +94,13,bank office +94,14,headquarters for district control +94,15,transit shed/warehouse +94,16,factory +94,17,power station +94,18,administrative +94,19,educational facility +94,20,church +94,21,chapel +94,22,temple +94,23,pagoda +94,24,shinto shrine +94,25,buddhist temple +94,26,mosque +94,27,marabout +94,28,lookout +94,29,communication +94,30,television +94,31,radio +94,32,radar +94,33,light support +94,34,microwave +94,35,cooling +94,36,observation +94,37,timeball +94,38,clock +94,39,control +94,40,airship mooring +94,41,stadium +94,42,bus station +96,1,metres +96,2,feet +103,1,international +103,2,national +103,3,national sub-division +104,1,centre justified +104,2,right justified +104,3,left justified +105,1,bottom justified +105,2,centre justified +105,3,top justified +107,1,fixed +107,2,flashing +107,3,long-flashing +107,4,quick-flashing +107,5,very quick-flashing +107,6,ultra quick-flashing +107,7,isophased +107,8,occulting +107,9,interrupted quick-flashing +107,10,interrupted very quick-flashing +107,11,interrupted ultra quick-flashing +107,12,morse +107,13,fixed / flash +107,14,flash / long-flash +107,15,occulting / flash +107,16,fixed / long-flash +107,17,occulting alternating +107,18,long-flash alternating +107,19,flash alternating +107,20,group alternating +107,25,quick-flash plus long-flash +107,26,very quick-flash plus long-flash +107,27,ultra quick-flash plus long-flash +107,28,alternating +107,29,fixed and alternating flashing +108,1,high intensity +108,2,low intensity +108,3,faint +108,4,intensified +108,5,unintensified +108,6,visibility deliberately restricted +108,7,obscured +108,8,partially obscured +109,1,IALA A +109,2,IALA B +109,9,no system +109,10,other sytem +112,1,masonry +112,2,concreted +112,3,loose boulders +112,4,hard surfaced +112,5,unsurfaced +112,6,wooden +112,7,metal +112,8,glass reinforced plastic (GRP) +112,9,painted +113,1,mud +113,2,clay +113,3,silt +113,4,sand +113,5,stone +113,6,gravel +113,7,pebbles +113,8,cobbles +113,9,rock +113,11,lava +113,14,coral +113,17,shells +113,18,boulder +114,1,fine +114,2,medium +114,3,coarse +114,4,broken +114,5,sticky +114,6,soft +114,7,stiff +114,8,volcanic +114,9,calcareous +114,10,hard +123,1,oil +123,2,gas +123,3,water +123,4,stone +123,5,coal +123,6,ore +123,7,chemicals +123,8,drinking water +123,9,milk +123,10,bauxite +123,11,coke +123,12,iron ingots +123,13,salt +123,14,sand +123,15,timber +123,16,sawdust / wood chips +123,17,scrap metal +123,18,liquified natural gas (LNG) +123,19,liquified petroleum gas (LPG) +123,20,wine +123,21,cement +123,22,grain +125,1,depth known +125,2,depth unknown +125,3,doubtful sounding +125,4,unreliable sounding +125,5,no bottom found at value shown +125,6,least depth known +125,7,"least depth unknown, safe clearance at value shown" +125,8,value reported (not surveyed) +125,9,value reported (not confirmed) +125,10,maintained depth +125,11,not reguraly maintained +131,1,anchoring prohibited +131,2,anchoring restricted +131,3,fishing prohibited +131,4,fishing restricted +131,5,trawling prohibited +131,6,trawling restricted +131,7,entry prohibited +131,8,entry restricted +131,9,dredging prohibited +131,10,dredging restricted +131,11,diving prohibited +131,12,diving restricted +131,13,no wake +131,14,area to be avoided +131,15,construction prohibited +140,1,automatically +140,2,by wave action +140,3,by hand +140,4,by wind +149,1,permanent +149,2,occasional +149,3,recommended +149,4,disused +149,5,periodically/intermittent +149,6,reserved +149,7,temporary +149,8,private +149,9,mandatory +149,11,extinguished +149,12,illuminated +149,13,historic +149,14,public +149,15,synchronized +149,16,watched +149,17,un-watched +149,18,existence doubtful +153,1,reconnaissance/sketch survey +153,2,controlled survey +153,4,examintion survey +153,5,passage survey +153,6,remotely sensed +156,1,found by echo-sounder +156,2,found by side scan sonar +156,3,found by multi-beam +156,4,found by diver +156,5,found by lead-line +156,6,swept by wire-drag +156,7,found by laser +156,8,swept by vertical acoustic system +156,9,found by electromagnetic sensor +156,10,photogrammetry +156,11,satelite imagery +156,12,found by levelling +156,13,swept by side-scan sonar +156,14,computer generated +161,1,better than 0.1m and 10 minutes +161,2,worse than 0.1m or 10 minutes +163,1,simplified harmonic method of tidal prediction +163,2,full harmonic method of tidal prediction +163,3,height and time difference non-harmonic method +170,1,darkest blue +170,2,medium blue +170,3,lightest blue +171,1,"cone, point up" +171,2,"cone, point down" +171,3,sphere +171,4,2 sphere +171,5,cylinder (can) +171,6,board +171,7,x-shape (St. Andrew's cross) +171,8,upright cross (St. George cross) +171,9,"cube, point up" +171,10,"2 cones, point to point" +171,11,"2 cones, base to base" +171,12,rhombus (diamond) +171,13,2 cones (points upward) +171,14,2 cones (points downward) +171,15,"besom, point up (broom or perch)" +171,16,"besom, point down (broom or perch)" +171,17,flag +171,18,sphere over rhombus +171,19,square +171,20,"rectangle, horizontal" +171,21,"rectangle, vertical" +171,22,"trapezium, up" +171,23,"trapezium, down" +171,24,"triangle, point up" +171,25,"triangle, point down" +171,26,circle +171,27,two upright crosses (one over the other) +171,28,T-shape +171,29,triangle pointing up over a circle +171,30,upright cross over a circle +171,31,rhombus over a circle +171,32,circle over a triangle pointing up +171,33,other shape (see INFORM) +172,1,inbound +172,2,outbound +172,3,one-way +172,4,two-way +185,1,Mean low water springs +185,2,Mean lower low water springs +185,3,Mean sea level +185,4,Lowest low water +185,5,Mean low water +185,6,Lowest low water springs +185,7,Approximate mean low water springs +185,8,Indian spring low water +185,9,Low water springs +185,10,Approximate lowest astronomical tide +185,11,Nearly lowest low water +185,12,Mean lower low water +185,13,Low water +185,14,Approximate mean low water +185,15,Approximate mean lower low water +185,16,Mean high water +185,17,Mean high water springs +185,18,High water +185,19,Approximate mean sea level +185,20,High water springs +185,21,Mean higher high water +185,22,Equinoctial spring low water +185,23,Lowest astronomical tide +185,24,Local datum +185,25,International Great Lakes Datum 1985 +185,26,Mean water level +185,27,Lower low water large tide +185,28,Higher high water lage tide +185,29,Nearly highest high water +187,1,partly submerged at high water +187,2,always dry +187,3,always under water/submerged +187,4,covers and uncovers +187,5,awash +187,6,subject to inundation or flooding +400,1,WGS 72 +400,2,WGS 84 +400,3,European 1950 +400,4,Potsdam Datum +400,5,Adindan +400,6,Afgooye +400,7,Ain el Abd 1970 +400,8,Anna 1 Astro 1965 +400,9,Antigua Island Astro 1943 +400,10,Arc 1950 +400,11,Arc 1960 +400,12,Ascension Island 1958 +400,13,"Astro beacon \"E\" 1945" +400,14,Astro DOS 71/4 +400,15,Astro Tern Island (FRIG) 1961 +400,16,Astronimical Station 1952 +400,17,Australian Geodetic 1966 +400,18,Australian Geodetic 1984 +400,19,Ayabelle Lighthouse +400,20,Bellevue (IGN) +400,21,Bermuda 1957 +400,22,Bissau +400,23,Bogota Observatory +400,24,Bukit Rimpah +400,25,Camp Area Astro +400,26,Campo Inchauspe 1969 +400,27,Canton Astro 1966 +400,28,Cape +400,29,Cape Canaveral +400,30,Carthage +400,31,Chatam Island Astro 1971 +400,32,Chua Astro +400,33,Corrego Alegre +400,34,Dabola +400,35,Djakarta (Batavia) +400,36,DOS 1968 +400,37,Easter Island 1967 +400,38,European 1979 +400,39,Fort Thomas 1955 +400,40,Gan 1970 +400,41,Geodetic Datum 1949 +400,42,Graciosa Base SW 1948 +400,43,Guam 1963 +400,44,Ganung Segara +400,45,GUX 1 Astro +400,46,Herat North +400,47,Hjorsey 1955 +400,48,Hong Kong 1963 +400,49,Hu-Tzu-Shan +400,50,Indian +400,51,Indian 1954 +400,52,Indian 1975 +400,53,Ireland 1965 +400,54,ISTS 061 Astro 1968 +400,55,ISTS 073 Astro 1969 +400,56,Johnston Island 1961 +400,57,Kandawala +400,58,Kerguelen Island 1949 +400,59,Kertau 1948 +400,60,Kusaie Astro 1951 +400,61, +400,62, +400,63, +400,64, +400,65, +400,66, +400,67, +400,68, +400,69, +400,70, +400,71, +400,72, +400,73, +400,74, +400,75, +400,76, +400,77, +400,78, +400,79, +400,80, +400,81, +400,82, +400,83, +400,84, +400,85, +400,86, +400,87, +400,88, +400,89, +400,90, +400,91, +400,92, +400,93, +400,94, +400,95, +400,96, +400,97, +400,98, +400,99,South Asia +400,100,Tananarive Observatory 1925 +402,1,surveyed +402,2,unsurveyed +402,3,inadequately surveyed +402,4,approximated +402,5,position doubtful +402,6,unreliable +402,7,reported (not surveyed) +402,8,reported (not confirmed) +402,9,estimated +402,10,precisely known +402,11,calculated diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv new file mode 100644 index 00000000..ae3628fc --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv @@ -0,0 +1,287 @@ +"Code","ObjectClass","Acronym","Attribute_A","Attribute_B","Attribute_C","Class","Primitives" +1,Administration area (Named),ADMARE,JRSDTN;NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +2,Airport / airfield,AIRARE,CATAIR;CONDTN;CONVIS;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +3,Anchor berth,ACHBRT,CATACH;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RADIUS;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +4,Anchorage area,ACHARE,CATACH;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +5,"Beacon, cardinal",BCNCAR,BCNSHP;CATCAM;COLOUR;COLPAT;CONDTN;CONVIS;CONRAD;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +6,"Beacon, isolated danger",BCNISD,BCNSHP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +7,"Beacon, lateral",BCNLAT,BCNSHP;CATLAM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +8,"Beacon, safe water",BCNSAW,BCNSHP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +9,"Beacon, special purpose/general",BCNSPP,BCNSHP;CATSPM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +10,Berth,BERTHS,DATEND;DATSTA;DRVAL1;NOBJNM;OBJNAM;PEREND;PERSTA;QUASOU;SOUACC;STATUS;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +11,Bridge,BRIDGE,CATBRG;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORCLR;NATCON;NOBJNM;OBJNAM;VERACC;VERCCL;VERCLR;VERCOP;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +12,"Building, single",BUISGL,BUISHP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;FUNCTN;HEIGHT;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +13,Built-up area,BUAARE,CATBUA;CONDTN;CONRAD;CONVIS;HEIGHT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +14,"Buoy, cardinal",BOYCAR,BOYSHP;CATCAM;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +15,"Buoy, installation",BOYINB,BOYSHP;CATINB;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;PRODCT;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +16,"Buoy, isolated danger",BOYISD,BOYSHP;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +17,"Buoy, lateral",BOYLAT,BOYSHP;CATLAM;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +18,"Buoy, safe water",BOYSAW,BOYSHP;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +19,"Buoy, special purpose/general",BOYSPP,BOYSHP;CATSPM;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +20,Cable area,CBLARE,CATCBL;DATEND;DATSTA;NOBJNM;OBJNAM;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +21,"Cable, overhead",CBLOHD,CATCBL;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ICEFAC;NOBJNM;OBJNAM;STATUS;VERACC;VERCLR;VERCSA;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +22,"Cable, submarine",CBLSUB,BURDEP;CATCBL;CONDTN;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;STATUS;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +23,Canal,CANALS,CATCAN;CONDTN;DATEND;DATSTA;HORACC;HORCLR;HORWID;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +24,Canal bank,CANBNK,CONDTN;DATEND;DATSTA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +25,Cargo transshipment area,CTSARE,DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +26,Causeway,CAUSWY,CONDTN;NATCON;NOBJNM;OBJNAM;STATUS;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +27,Caution area,CTNARE,DATEND;DATSTA;PEREND;PERSTA;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +28,Checkpoint,CHKPNT,CATCHP;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +29,Coastguard station,CGUSTA,DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +30,Coastline,COALNE,CATCOA;COLOUR;CONRAD;CONVIS;ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +31,Contiguous zone,CONZNE,DATEND;DATSTA;NATION;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +32,Continental shelf area,COSARE,NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +33,Control point,CTRPNT,CATCTR;DATEND;DATSTA;ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +34,Conveyor,CONVYR,CATCON;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;LIFCAP;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERCLR;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +35,Crane,CRANES,CATCRN;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;HEIGHT;LIFCAP;NOBJNM;OBJNAM;ORIENT;RADIUS;STATUS;VERACC;VERCLR;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +36,Current - non - gravitational,CURENT,CURVEL;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;,INFORM;NINFOM;SCAMAX;SCAMIN;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +37,Custom zone,CUSZNE,NATION;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +38,Dam,DAMCON,CATDAM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +39,Daymark,DAYMAR,CATSPM;COLOUR;COLPAT;DATEND;DATSTA;ELEVAT;HEIGHT;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;TOPSHP;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +40,Deep water route centerline,DWRTCL,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +41,Deep water route part,DWRTPT,DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;RESTRN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +42,Depth area,DEPARE,DRVAL1;DRVAL2;QUASOU;SOUACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +43,Depth contour,DEPCNT,VALDCO;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;hypcat;,G,Line; +44,Distance mark,DISMAR,CATDIS;DATEND;DATSTA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +45,Dock area,DOCARE,CATDOC;CONDTN;DATEND;DATSTA;HORACC;HORCLR;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +46,Dredged area,DRGARE,DRVAL1;DRVAL2;NOBJNM;OBJNAM;QUASOU;RESTRN;SOUACC;TECSOU;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +47,Dry dock,DRYDOC,CONDTN;HORACC;HORCLR;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;DRVAL1;QUASOU;SOUACC;VERDAT;,INFORM;NINFOM;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +48,Dumping ground,DMPGRD,CATDPG;NOBJNM;OBJNAM;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +49,Dyke,DYKCON,CONDTN;CONRAD;DATEND;DATSTA;HEIGHT;NATCON;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +50,Exclusive Economic Zone,EXEZNE,NATION;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +51,Fairway,FAIRWY,DATEND;DATSTA;DRVAL1;NOBJNM;OBJNAM;ORIENT;QUASOU;RESTRN;SOUACC;STATUS;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +52,Fence/wall,FNCLNE,CATFNC;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;HEIGHT;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +53,Ferry route,FERYRT,CATFRY;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +54,Fishery zone,FSHZNE,NATION;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +55,Fishing facility,FSHFAC,CATFIF;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +56,Fishing ground,FSHGRD,NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +57,Floating dock,FLODOC,COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;DRVAL1;HORACC;HORCLR;HORLEN;HORWID;LIFCAP;NOBJNM;OBJNAM;STATUS;VERACC;VERLEN;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +58,Fog signal,FOGSIG,CATFOG;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;SIGFRQ;SIGGEN;SIGGRP;SIGPER;SIGSEQ;STATUS;VALMXR;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +59,Fortified structure,FORSTC,CATFOR;CONDTN;CONRAD;CONVIS;HEIGHT;NATCON;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +60,Free port area,FRPARE,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +61,Gate,GATCON,CATGAT;CONDTN;DRVAL1;HORACC;HORCLR;NATCON;NOBJNM;OBJNAM;QUASOU;SOUACC;STATUS;VERACC;VERCLR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +62,Gridiron,GRIDRN,HORACC;HORLEN;HORWID;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +63,Harbour area (administrative),HRBARE,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +64,Harbour facility,HRBFAC,CATHAF;CONDTN;DATEND;DATSTA;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +65,Hulk,HULKES,CATHLK;COLOUR;COLPAT;CONRAD;CONVIS;HORACC;HORLEN;HORWID;NOBJNM;OBJNAM;VERACC;VERLEN;CONDTN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +66,Ice area,ICEARE,CATICE;CONVIS;ELEVAT;HEIGHT;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +67,Incineration area,ICNARE,NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +68,Inshore traffic zone,ISTZNE,CATTSS;DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +69,Lake,LAKARE,ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +70,Lake shore,LAKSHR,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +71,Land area,LNDARE,CONDTN;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +72,Land elevation,LNDELV,CONVIS;ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +73,Land region,LNDRGN,CATLND;NATQUA;NATSUR;NOBJNM;OBJNAM;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +74,Landmark,LNDMRK,CATLMK;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;FUNCTN;HEIGHT;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +75,Light,LIGHTS,CATLIT;COLOUR;DATEND;DATSTA;EXCLIT;HEIGHT;LITCHR;LITVIS;MARSYS;MLTYLT;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;SECTR1;SECTR2;SIGGRP;SIGPER;SIGSEQ;STATUS;VERACC;VALNMR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +76,Light float,LITFLT,COLOUR;COLPAT;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORLEN;HORWID;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +77,Light vessel,LITVES,COLOUR;COLPAT;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORLEN;HORWID;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +78,Local magnetic anomaly,LOCMAG,NOBJNM;OBJNAM;VALLMA;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +79,Lock basin,LOKBSN,DATEND;DATSTA;HORACC;HORCLR;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +80,Log pond,LOGPON,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +81,Magnetic variation,MAGVAR,DATEND;DATSTA;RYRMGV;VALACM;VALMAG;,INFORM;NINFOM;SCAMAX;SCAMIN;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +82,Marine farm/culture,MARCUL,CATMFA;DATEND;DATSTA;EXPSOU;NOBJNM;OBJNAM;PEREND;PERSTA;QUASOU;RESTRN;SOUACC;STATUS;VALSOU;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +83,Military practice area,MIPARE,CATMPA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +84,Mooring/warping facility,MORFAC,BOYSHP;CATMOR;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +85,Navigation line,NAVLNE,CATNAV;DATEND;DATSTA;ORIENT;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +86,Obstruction,OBSTRN,CATOBS;CONDTN;EXPSOU;HEIGHT;NATCON;NATQUA;NOBJNM;OBJNAM;PRODCT;QUASOU;SOUACC;STATUS;TECSOU;VALSOU;VERACC;VERDAT;VERLEN;WATLEV;NATSUR;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +87,Offshore platform,OFSPLF,CATOFP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +88,Offshore production area,OSPARE,CATPRA;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NOBJNM;OBJNAM;PRODCT;RESTRN;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +89,Oil barrier,OILBAR,CATOLB;CONDTN;DATEND;DATSTA;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +90,Pile,PILPNT,CATPLE;COLOUR;COLPAT;CONDTN;CONVIS;DATEND;DATSTA;HEIGHT;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +91,Pilot boarding place,PILBOP,CATPIL;COMCHA;DATEND;DATSTA;NOBJNM;NPLDST;OBJNAM;PEREND;PERSTA;PILDST;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +92,Pipeline area,PIPARE,CONDTN;DATEND;DATSTA;NOBJNM;OBJNAM;PRODCT;RESTRN;STATUS;CATPIP;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +93,"Pipeline, overhead",PIPOHD,CATPIP;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERCLR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +94,"Pipeline, submarine/on land",PIPSOL,BURDEP;CATPIP;CONDTN;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERLEN;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +95,Pontoon,PONTON,CONDTN;CONRAD;CONVIS;DATEND;DATSTA;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +96,Precautionary area,PRCARE,DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +97,Production / storage area,PRDARE,CATPRA;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +98,Pylon/bridge support,PYLONS,CATPYL;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +99,Radar line,RADLNE,NOBJNM;OBJNAM;ORIENT;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +100,Radar range,RADRNG,COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +101,Radar reflector,RADRFL,HEIGHT;STATUS;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +102,Radar station,RADSTA,CATRAS;DATEND;DATSTA;HEIGHT;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VALMXR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +103,Radar transponder beacon,RTPBCN,CATRTB;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RADWAL;SECTR1;SECTR2;SIGGRP;SIGSEQ;STATUS;VALMXR;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +104,Radio calling-in point,RDOCAL,COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;STATUS;TRAFIC;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +105,Radio station,RDOSTA,CALSGN;CATROS;COMCHA;DATEND;DATSTA;ESTRNG;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;SIGFRQ;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +106,Railway,RAILWY,CONDTN;HEIGHT;NOBJNM;OBJNAM;STATUS;VERACC;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +107,Rapids,RAPIDS,NOBJNM;OBJNAM;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +108,Recommended route centerline,RCRTCL,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +109,Recommended track,RECTRC,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +110,Recommended Traffic Lane Part,RCTLPT,DATEND;DATSTA;ORIENT;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +111,Rescue station,RSCSTA,CATRSC;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;SCAMAX;SCAMIN;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +112,Restricted area,RESARE,CATREA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +113,Retro-reflector,RETRFL,COLOUR;COLPAT;DATEND;DATSTA;HEIGHT;MARSYS;PEREND;PERSTA;STATUS;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +114,River,RIVERS,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +115,River bank,RIVBNK,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +116,Road,ROADWY,CATROD;CONDTN;NATCON;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +117,Runway,RUNWAY,CATRUN;CONDTN;CONVIS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +118,Sand waves,SNDWAV,VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +119,Sea area / named water area,SEAARE,CATSEA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +120,Sea-plane landing area,SPLARE,NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +121,Seabed area,SBDARE,COLOUR;NATQUA;NATSUR;WATLEV;OBJNAM;NOBJNM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +122,Shoreline Construction,SLCONS,CATSLC;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;HORACC;HORCLR;HORLEN;HORWID;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +123,"Signal station, traffic",SISTAT,CATSIT;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +124,"Signal station, warning",SISTAW,CATSIW;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +125,Silo / tank,SILTNK,BUISHP;CATSIL;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;HEIGHT;NATCON;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +126,Slope topline,SLOTOP,CATSLO;COLOUR;CONRAD;CONVIS;ELEVAT;NATCON;NATQUA;NATSUR;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +127,Sloping ground,SLOGRD,CATSLO;COLOUR;CONRAD;CONVIS;NATCON;NATQUA;NATSUR;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +128,Small craft facility,SMCFAC,CATSCF;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +129,Sounding,SOUNDG,EXPSOU;NOBJNM;OBJNAM;QUASOU;SOUACC;TECSOU;VERDAT;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +130,Spring,SPRING,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +131,Square,SQUARE,CONDTN;NATCON;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +132,Straight territorial sea baseline,STSLNE,NATION;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +133,Submarine transit lane,SUBTLN,NOBJNM;OBJNAM;RESTRN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +134,Swept Area,SWPARE,DRVAL1;QUASOU;SOUACC;TECSOU;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +135,Territorial sea area,TESARE,NATION;RESTRN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +136,Tidal stream - harmonic prediction,TS_PRH,NOBJNM;OBJNAM;T_MTOD;T_VAHC;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +137,Tidal stream - non-harmonic prediction,TS_PNH,NOBJNM;OBJNAM;T_MTOD;T_THDF;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +138,Tidal stream panel data,TS_PAD,NOBJNM;OBJNAM;TS_TSP;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +139,Tidal stream - time series,TS_TIS,NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;T_TINT;TS_TSV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +140,Tide - harmonic prediction,T_HMON,NOBJNM;OBJNAM;T_ACWL;T_MTOD;T_VAHC;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +141,Tide - non-harmonic prediction,T_NHMN,NOBJNM;OBJNAM;T_ACWL;T_MTOD;T_THDF;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +142,Tidal stream - time series,T_TIMS,NOBJNM;OBJNAM;T_HWLW;T_TINT;T_TSVL;TIMEND;TIMSTA;STATUS;T_ACWL;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +143,Tideway,TIDEWY,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +144,Top mark,TOPMAR,COLOUR;COLPAT;DATEND;DATSTA;HEIGHT;MARSYS;PEREND;PERSTA;STATUS;TOPSHP;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +145,Traffic Separation Line,TSELNE,CATTSS;DATEND;DATSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +146,Traffic Separation Scheme Boundary,TSSBND,CATTSS;DATEND;DATSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +147,Traffic Separation Scheme Crossing,TSSCRS,CATTSS;DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +148,Traffic Separation Scheme Lane part,TSSLPT,CATTSS;DATEND;DATSTA;ORIENT;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +149,Traffic Separation Scheme Roundabout,TSSRON,CATTSS;DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +150,Traffic Separation Zone,TSEZNE,CATTSS;DATEND;DATSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +151,Tunnel,TUNNEL,BURDEP;CONDTN;HORACC;HORCLR;NOBJNM;OBJNAM;STATUS;VERACC;VERCLR;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +152,Two-way route part,TWRTPT,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;ORIENT;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +153,Underwater rock / awash rock,UWTROC,EXPSOU;NATSUR;NATQUA;NOBJNM;OBJNAM;QUASOU;SOUACC;STATUS;TECSOU;VALSOU;VERDAT;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +154,Unsurveyed area,UNSARE,,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +155,Vegetation,VEGATN,CATVEG;CONVIS;ELEVAT;HEIGHT;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +156,Water turbulence,WATTUR,CATWAT;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +157,Waterfall,WATFAL,CONVIS;NOBJNM;OBJNAM;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +158,Weed/Kelp,WEDKLP,CATWED;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +159,Wreck,WRECKS,CATWRK;CONRAD;CONVIS;EXPSOU;HEIGHT;NOBJNM;OBJNAM;QUASOU;SOUACC;STATUS;TECSOU;VALSOU;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +160,Tidal stream - flood/ebb,TS_FEB,CAT_TS;CURVEL;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +161,Archipelagix Sea Lane,ARCSLN,DATEND;DATSTA;NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +162,Archipelagix Sea Lane axis,ASLXIS,DATEND;DATSTA;NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +163,New object,NEWOBJ,CLSDEF;CLSNAM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;NATION;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;WATLEV;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;SYMINS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area;Point; +300,Accuracy of data,M_ACCY,HORACC;POSACC;SOUACC;VERACC;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +301,Compilation scale of data,M_CSCL,CSCALE;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +302,Coverage,M_COVR,CATCOV;,INFORM;NINFOM;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +303,Horizontal datum of data,M_HDAT,HORDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +304,Horizontal datum shift parameters,M_HOPA,HORDAT;SHIPAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +305,Nautical publication information,M_NPUB,,INFORM;NINFOM;NTXTDS;PICREP;PUBREF;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +306,Navigational system of marks,M_NSYS,MARSYS;ORIENT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +307,Production information,M_PROD,AGENCY;CPDATE;NATION;NMDATE;PRCTRY;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +308,Quality of data,M_QUAL,CATQUA;CATZOC;DRVAL1;DRVAL2;POSACC;SOUACC;SUREND;SURSTA;TECSOU;VERDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +309,Sounding datum,M_SDAT,VERDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +310,Survey reliability,M_SREL,QUAPOS;QUASOU;SCVAL1;SCVAL2;SDISMN;SDISMX;SURATH;SUREND;SURSTA;SURTYP;TECSOU;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +311,Units of measurement of data,M_UNIT,DUNITS;HUNITS;PUNITS;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +312,Vertical datum of data,M_VDAT,VERDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +400,Aggregation,C_AGGR,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,C, +401,Association,C_ASSO,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,C, +402,Stacked on/stacked under,C_STAC,,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,C, +500,Cartographic area,$AREAS,COLOUR;ORIENT;$SCODE;$TINTS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +501,Cartographic line,$LINES,$SCODE;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +502,Cartographic symbol,$CSYMB,ORIENT;$SCALE;$SCODE;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +503,Compass,$COMPS,$CSIZE;RYRMGV;VALACM;VALMAG;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +504,Text,$TEXTS,$CHARS;COLOUR;$JUSTH;$JUSTV;$NTXST;$SPACE;$TXSTR;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +0,"###Codes in the 17xxx range come from past s57objectclasses_iw.csv (Inland Waterways)",,,,,, +17000,Anchor berth,achbrt,catach;clsdng;comctn;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RADIUS;restrn;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17001,Anchorage area,achare,catach;clsdng;comctn;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;restrn;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17002,Canal bank,canbnk,catbnk;CONRAD;DATEND;DATSTA;NATSUR;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line; +17003,Depth area,depare,DRVAL1;DRVAL2;eleva1;eleva2;wtwdis;QUASOU;SOUACC;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line;Area; +17004,Distance mark,dismar,catdis;wtwdis;unlocd;DATEND;DATSTA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17005,Restricted area,resare,CATREA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;restrn;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17006,River bank,rivbnk,catbnk;CONRAD;NATSUR;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line; +17007,Signal station traffic,sistat,catsit;COMCHA;DATEND;DATSTA;dirimp;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17008,Signal station warning,sistaw,catsiw;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17009,Top Mark,topmar,COLOUR;COLPAT;HEIGHT;marsys;STATUS;TOPSHP;VERACC;verdat;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17010,Berth berths,berths,catbrt;clsdng;comctn;DATEND;DATSTA;DRVAL1;NOBJNM;OBJNAM;PEREND;PERSTA;QUASOU;SOUACC;STATUS;trshgd;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line;Area; +17011,"Bridge","bridge",catbrg;comctn;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORCLR;NATCON;NOBJNM;OBJNAM;TIMEND;TIMSTA;VERACC;VERCCL;VERCLR;VERCOP;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line;Area; +17012,Cable overhead,cblohd,CATCBL;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ICEFAC;NOBJNM;OBJNAM;STATUS;VERACC;VERCLR;VERCSA;verdat;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;RECDAT;RECIND;,SORDAT;SORIND;,G,Line; +17013,Ferry route,feryrt,catfry;comctn;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line;Area; +17014,Harbour Area,hrbare,cathbr;comctn;NOBJNM;OBJNAM;STATUS;unlocd;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17015,Harbour Facilities,hrbfac,cathaf;CONDTN;DATEND;DATSTA;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17016,Lock Basin,lokbsn,HORACC;horcll;horclw;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17017,Radio calling-in point,rdocal,catcom;comctn;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;STATUS;TRAFIC;dirimp;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line; +17018,Navigational system of marks,m_nsys,marsys;ORIENT;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17050,Notice mark,notmrk,catnmk;fnctnm;dirimp;disipd;disipu;disbk1;disbk2;addmrk;marsys;ORIENT;CONDTN;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17051,Waterway axis,wtwaxs,catccl;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line; +17052,Waterway profile,wtwprf,wtwdis;HEIGHT;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line; +17053,Bridge area,brgare,comctn;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17054,Bunker station,bunsta,bunves;catbun;comctn;NOBJNM;OBJNAM;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17055,Communication Area,comare,catcom;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;STATUS;TIMEND;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17056,Harbour Basin,hrbbsn,HORACC;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17057,Lock area,lokare,comctn;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17058,Lock basin part,lkbspt,HORACC;horcll;horclw;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17059,Port Area,prtare,comctn;NOBJNM;OBJNAM;STATUS;unlocd;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17060,Beacon water-way,bcnwtw,BCNSHP;catwwm;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;dirimp;ELEVAT;HEIGHT;marsys;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;verdat;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17061,Buoy water-way,boywtw,BOYSHP;catwwm;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;marsys;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17062,Refuse dump,refdmp,catrfd;comctn;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17063,Route planning point,rtplpt,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17064,Terminal,termnl,cattml;comctn;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;trshgd;unlocd;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17065,Turning basin,trnbsn,HORCLR;NOBJNM;STATUS;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +0,"###Codes in the 20xxx and 21xxx range come from past s57objectclasses_aml.csv (Additional_Military_Layers)",,,,,, +20484,"ATS Route Centreline","atsctl","authty;linech;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20485,"Airspace Restriction","airres + catasr","authty;catasr;linech;maxalt;maxftl;minalt;minftl;NOBJNM;OBJNAM;HUNITS;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20486,"Area of Imagery Coverage","imgare","bearng;catimg;ELEVAT;HUNITS;orgntr;SUREND;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20487,"Beach Exit","bchext","ccmidx;exitus;gradnt;HORCLR;HORLEN;HORWID;HUNITS;VERCSA;wbrcap","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;L" +20488,"Beach Profile","bchprf","bearng;gradnt;SUREND","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20489,"Beach Survey","bchare","accres;brktyp;ccmidx;dgmrlf;HORLEN;HORWID;HUNITS;quabch;orgntr;srfhgt;srfzne;stbacv;SUREND;SURSTA;swlhgt;tdlrng;tdltyp","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P A " +20490,"Bedrock area","bedare","N/A","N/A",,"G","A" +20491,"Bottom Feature","botmft + catbot","catbot;DUNITS;gradnt;HORLEN;HORWID;HUNITS;migspd;migdir;NOBJNM;OBJNAM;ORIENT;soudat;stfotn;VALSOU;VERLEN;WATLEV;wavlen","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;L;A" +20492,"Centre Line","centre","N/A","N/A",,"G","L" +20494,"Contact History","histob","orgntr;surdat;SUREND","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20495,"Controlled airspace","ctlasp + catcas","authty;catcas;caircd;linech;maxalt;maxftl;minalt;minftl;NOBJNM;OBJNAM;HUNITS;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L;A" +20496,"Diving Location","divloc","depact;divact;DUNITS;OBJNAM;NOBJNM;timeyr;watclr","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20497,"Drinking Water Location","watloc","N/A","N/A",,"G","P" +20498,"Drop Zone","drpzne","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20499,"Environmentally Sensitive Area","envare","authty;legsta;OBJNAM;NOBJNM;PEREND;PERSTA","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A;P" +20500,"Fishing Activity Area","fshare","catfsh;STATUS;timeyr","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20501,"Impact Scour","iscour","datfir;datlst;depwat;DUNITS;gendep;HORLEN;HORWID;HUNITS;NATQUA;NATSUR;NOBJNM;OBJNAM;orcard;ORIENT;QUASOU;senfir;senlst;sonsig;sorfir;sorlst;SOUACC;soudat;STATUS;TECSOU;VALSOU;VERLEN;WATLEV","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20502,"Landing Area","lngare","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20503,"Landing Place","lndplc","gradnt;STATUS;wbrcap","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20504,"Landing Point","lndpnt","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20505,"Landing Site","lndste","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20506,"Landing Strip","lndstp","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20507,"Landing Zone","lndzne","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20508,"Marine management area","marman + catmma","actper;authty;catmma;identy;linech;NOBJNM;OBJNAM;NATION;spcies;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20509,"Maritime Safety Information area","msiare","catmsi;condet;NATION;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20510,"MCM Area","mcmare","mhclas;milden;nomden","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20511,"Military exercise airspace","mexasp + catmea","actper;authty;catmea;linech;maxalt;maxftl;minalt;minftl;NOBJNM;OBJNAM;HUNITS;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20513,"Patrol area","patare + catpat","authty;catpat;identy;linech;NOBJNM;OBJNAM;NATION;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20514,"Q-Route Leg","qroute","actper;dnbear;lftwid;NATION;NOBJNM;OBJNAM;rclass;rgtwid;STATUS;TRAFIC;HUNITS;upbear","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20515,"Radio broadcast area","rdoare","NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20516,"Regulated airspace","regasp","N/A","N/A",,"G","A" +20517,"Geological Layer","sedlay","attutn;bulkdn;COLOUR;deplyr;dttdep;dttnum;DUNITS;gascon;grnsiz;hfbmls;laynum;lfbmls;mgstyp;reflco;migspd;migdir;msstrg;natsed;NATQUA;porsty;revebn;revfqy;revgan;samret;sndvel;snrflc;soudat;WATLEV;wbrcap","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20518,"Seismic Activity Area","seiare","bearng;ricsca","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20519,"Sensor Anomaly","senanm","datfir;datlst;DUNITS;gendep;HUNITS;madsig;magany;magint;NOBJNM;OBJNAM;orcard;ORIENT;QUASOU;scrdim;senfir;senlst;sonsig;sorfir;sorlst;soudat;SOUACC;STATUS;TECSOU;VALSOU;WATLEV","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20520,"Shelter Location","shlloc","OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20521,"Superficial Sediment Deposits","seddep","N/A","N/A",,"G","A" +20522,"Trafficability Area","trfare","cattrf","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20523,"Trawl Scours","twlscr","HUNITS;HORWID;ORIENT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L;A" +20524,"Turning point","turnpt","NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20525,"Viewpoint","viewpt","bearng;discon;DUNITS;shpspd;snrfrq;snrrsc;twdbdp","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20526,"Bottom Tactical Data Area","btdare","mntden;undmnr;umnrwb;umrwob","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20527,"Burial Probability Area","bprare","brmchm;brperd;brprob;tgrfwt","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20528,"Leisure Activity Area","lsrare","lsract;timeyr","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20529,"Performance Data Area","pfdare","clperc;clprob;csprob;cswidt;dsprob;dtprob","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20530,"Resource Location","resloc","typres;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20531,"Risk Data Area","rkdare","conlev;numrmn;prbrmn;rmnlmn;sminth;znecol","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20532,"Navigation system (NAVAID)","navaid + CATROS","actper;CALSGN;CATROS;COMCHA;NOBJNM;OBJNAM;SIGFRQ","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20533,"Internal Waters Area ","intwtr","linech;NATION;RESTRN;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20534,"Sea Ice","seaice","iceact;icecvt;icesod;icemax;icemin;icerdv;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20535,"Ice Advisory Area","iceadv","iceadc;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20536,"Iceberg Area","brgare","icebnm;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20537,"Land Ice","lndice","icelnd;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20538,"Ice Line","icelin","icelnc;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20539,"Ice Route","icerte","NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20540,"Ice Polynya","icepol","icepst;icepty;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20541,"Ice Lead","icelea","icelty;icelst;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L;A" +20542,"Iceberg","icebrg","icebsz;icebsh;icebdr;icebsp;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20543,"Ice Movement","icemov","icebsp;icebdr;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20544,"Traffic route","tfcrte","linech;NOBJNM;OBJNAM;PEREND;PERSTA;traden;TRAFIC;typshp","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20717,"User Defined","u_defd","txtdes","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;L;A" +20718,"Small Bottom Object","smalbo","blndzn;brmchm;brpctg;COLOUR;comsys;datfir;datlst;depwat;DUNITS;gendep;HORLEN;HORWID;HUNITS;incltn;layptm;layrfn;laytim;madsig;magany;magint;minern;miscls;miscom;misdat;misnme;mnhsys;mnimnc;mnimnt;mnssys;mulcon;mwdcrn;NATCON;navsys;notfnd;nmprob;objtrn;objshp;onsonr;orbobn;orgdat;orgntr;ORIENT;QUASOU;scrdim;senfir;senlst;snrflc;soudat;stacon;surdat;SUREND;tarstg;TECSOU;unwrfm;VERLEN","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +21484,"Completeness for the product specification","m_conf + catcnf","catcnf","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","A" +21485,"Security Classification Information","m_clas","","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","A" +21486,"Vertical Datum Shift Area","m_vers","vershf","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","P;A" +21487,"Defined Straight Lines","m_line","linech","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","N/A" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/seed_2d.dgn b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/seed_2d.dgn new file mode 100644 index 0000000000000000000000000000000000000000..b99cad81a540723c9d75cb5f76af92000b280ef1 GIT binary patch literal 9216 zcmeGhZDvp=?Z1qu4=ERxT>q#l0{)u%4D4k=RWMPYY~sx zK{r+qCTw#fla4X*N3pP?Lkq!y`?c9^f85Hj^VblzW&7n;=bbVL_xl>ghOJQ-mE=xE*?b#h4tN-u z=Akt3xv+p)mWoqhJT+O4`YV6)W6yDYlg2%?-=33y|2)QX(@vZ;V(85oiDRpmw8x50lgA=&7qu*WX zM%n5cJ5w-Zn!j`WZa2W05XbF**_5VvlST^TRSkQhYl z(l8G`7|=hZdCFrgT+B0xd0=uc6P6A_+5wx${yTUl?6e++?9o{XR6b+7;R@MKEO>+p zfnVkqDvb}foN%aH?W>E1R#rvv3p*NJ6|IY+4uE;p^jN=wm*ukQh!kQI1y~a(0Qh+F z)dPnTuOuu=*-n-qk9#b%Y&GSDl-zl6`xk2`aqs=hK~XzK4+zUi-TxY~0zBlA=1KSJ z0nX!aca zRy-Y%NS$TCy64CA8oa%Q>Dd`=N@hB6p0M7@fy+4lm|@O5SBvB zm$EYm3BYqyBIqE8am1J*^dyu>Yy0+ zLurcDq%f{RPF)eBgQQ(1lA^7@1Piwq86dG=8!+P zNJTo77)n@_bS5Ar^VF*@wO)O>E!z@rfO!+T#Xox2k7hh_I$N*Yyc^febGgqH`ul&K zt6-g$Ls`^tp)0EwfB;c9t6?Eqb6x;Jwd0JpG9JKwjICB04Wee%(+E8FZP=^P-i<4w zUipj&)Dy+VPCB&+_%B@-q~SCf+sNo5B@B6WAg%I1crs#SkU#3Xf@y8&dYUJPtEkJ1 z#K!s@-0hB$_cLS-F1Q(RGq4mg;Flh^6ic?+0j$Co$7XZyup#PT3pBzLz76yzK#n%m z!-=gBhi2b;ubnK%&=o9+46yeS7ra8cZdteWY+Y9SegN9NQ;a5l@=e@-OnbkAZ*m_l Z#7HT9qrZeR&z*-}vvoB#Pm{EH{RedVUN= z+YvfoI#Fq2jQ#>ni1sXVQ4v`~Uyv`NzPpT!n!lU50_-1v5++!W>i< zvGUz^4>lBU%ZOoM_`-;=_22)5%K!hPUqEav4`5)3wxg!4|7_D*G3HsCahnZe)zC=Rg!1t)Bx3=Fu$v8$$~C@9t-AOTpSfl@q-Pj{Nj O2dkBg4OoTgDhL2_{u}E6 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/stateplane.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/stateplane.csv new file mode 100644 index 00000000..38089e71 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/stateplane.csv @@ -0,0 +1,259 @@ +"ID","STATE","ZONE","PROJ_METHOD","DATUM","USGS_CODE","EPSG_PCS_CODE" +101,ALABAMA,EAST,1,NAD83,101,26929 +102,ALABAMA,WEST,1,NAD83,102,26930 +201,ARIZONA,EAST,1,NAD83,201,26948 +202,ARIZONA,CENTRAL,1,NAD83,202,26949 +203,ARIZONA,WEST,1,NAD83,203,26950 +301,ARKANSAS,NORTH,2,NAD83,301,26951 +302,ARKANSAS,SOUTH,2,NAD83,302,26952 +401,CALIFORNIA,I,2,NAD83,401,26941 +402,CALIFORNIA,II,2,NAD83,402,26942 +403,CALIFORNIA,III,2,NAD83,403,26943 +404,CALIFORNIA,IV,2,NAD83,404,26944 +405,CALIFORNIA,V,2,NAD83,405,26945 +406,CALIFORNIA,VI,2,NAD83,406,26946 +501,COLORADO,NORTH,2,NAD83,501,26953 +502,COLORADO,CENTRAL,2,NAD83,502,26954 +503,COLORADO,SOUTH,2,NAD83,503,26955 +600,CONNECTICUT,,2,NAD83,600,26956 +700,DELAWARE,,1,NAD83,700,26957 +901,FLORIDA,EAST,1,NAD83,901,26958 +902,FLORIDA,WEST,1,NAD83,902,26959 +903,FLORIDA,NORTH,2,NAD83,903,26960 +1001,GEORGIA,EAST,1,NAD83,1001,26966 +1002,GEORGIA,WEST,1,NAD83,1002,26967 +1101,IDAHO,EAST,1,NAD83,1101,26968 +1102,IDAHO,CENTRAL,1,NAD83,1102,26969 +1103,IDAHO,WEST,1,NAD83,1103,26970 +1201,ILLINOIS,EAST,1,NAD83,1201,26971 +1202,ILLINOIS,WEST,1,NAD83,1202,26972 +1301,INDIANA,EAST,1,NAD83,1301,26973 +1302,INDIANA,WEST,1,NAD83,1302,26974 +1401,IOWA,NORTH,2,NAD83,1401,26975 +1402,IOWA,SOUTH,2,NAD83,1402,26976 +1501,KANSAS,NORTH,2,NAD83,1501,26977 +1502,KANSAS,SOUTH,2,NAD83,1502,26978 +1600,KENTUCKY,SINGLE ZONE,2,NAD83,1600,3088 +1601,KENTUCKY,NORTH,2,NAD83,1601,2205 +1602,KENTUCKY,SOUTH,2,NAD83,1602,26980 +1701,LOUISIANA,NORTH,2,NAD83,1701,26981 +1702,LOUISIANA,SOUTH,2,NAD83,1702,26982 +1703,LOUISIANA,OFFSHORE,2,NAD83,1703, +1801,MAINE,EAST,1,NAD83,1801,26983 +1802,MAINE,WEST,1,NAD83,1802,26984 +1900,MARYLAND,,2,NAD83,1900,26985 +2001,MASSACHUSETTS,MAINLAND,2,NAD83,2001,26986 +2002,MASSACHUSETTS,ISLAND,2,NAD83,2002,26987 +2111,MICHIGAN,NORTH,2,NAD83,2111,26988 +2112,MICHIGAN,CENTRAL,2,NAD83,2112,26989 +2113,MICHIGAN,SOUTH,2,NAD83,2113,26990 +2201,MINNESOTA,NORTH,2,NAD83,2201,26991 +2202,MINNESOTA,CENTRAL,2,NAD83,2202,26992 +2203,MINNESOTA,SOUTH,2,NAD83,2203,26993 +2301,MISSISSIPPI,EAST,1,NAD83,2301,26994 +2302,MISSISSIPPI,WEST,1,NAD83,2302,26995 +2401,MISSOURI,EAST,1,NAD83,2401,26996 +2402,MISSOURI,CENTRAL,1,NAD83,2402,26997 +2403,MISSOURI,WEST,1,NAD83,2403,26998 +2500,MONTANA,,2,NAD83,2500,32100 +2600,NEBRASKA,,2,NAD83,2600,32104 +2701,NEVADA,EAST,1,NAD83,2701,32107 +2702,NEVADA,CENTRAL,1,NAD83,2702,32108 +2703,NEVADA,WEST,1,NAD83,2703,32109 +2800,"NEW HAMPSHIRE",,1,NAD83,2800,32110 +2900,"NEW JERSEY",,1,NAD83,2900,32111 +3001,"NEW MEXICO",EAST,1,NAD83,3001,32112 +3002,"NEW MEXICO",CENTRAL,1,NAD83,3002,32113 +3003,"NEW MEXICO",WEST,1,NAD83,3003,32114 +3101,"NEW YORK",EAST,1,NAD83,3101,32115 +3102,"NEW YORK",CENTRAL,1,NAD83,3102,32116 +3103,"NEW YORK",WEST,1,NAD83,3103,32117 +3104,"NEW YORK","LONG ISLAND",2,NAD83,3104,32118 +3200,"NORTH CAROLINA",,2,NAD83,3200,32119 +3301,"NORTH DAKOTA",NORTH,2,NAD83,3301,32120 +3302,"NORTH DAKOTA",SOUTH,2,NAD83,3302,32121 +3401,OHIO,NORTH,2,NAD83,3401,32122 +3402,OHIO,SOUTH,2,NAD83,3402,32123 +3501,OKLAHOMA,NORTH,2,NAD83,3501,32124 +3502,OKLAHOMA,SOUTH,2,NAD83,3502,32125 +3601,OREGON,NORTH,2,NAD83,3601,32126 +3602,OREGON,SOUTH,2,NAD83,3602,32127 +3701,PENNSYLVANIA,NORTH,2,NAD83,3701,32128 +3702,PENNSYLVANIA,SOUTH,2,NAD83,3702,32129 +3800,"RHODE ISLAND",,1,NAD83,3800,32130 +3900,"SOUTH CAROLINA",,2,NAD83,3900,32133 +4001,"SOUTH DAKOTA",NORTH,2,NAD83,4001,32134 +4002,"SOUTH DAKOTA",SOUTH,2,NAD83,4002,32135 +4100,TENNESSEE,,2,NAD83,4100,32136 +4201,TEXAS,NORTH,2,NAD83,4201,32137 +4202,TEXAS,"NORTH CENTRAL",2,NAD83,4202,32138 +4203,TEXAS,CENTRAL,2,NAD83,4203,32139 +4204,TEXAS,"SOUTH CENTRAL",2,NAD83,4204,32140 +4205,TEXAS,SOUTH,2,NAD83,4205,32141 +4301,UTAH,NORTH,2,NAD83,4301,32142 +4302,UTAH,CENTRAL,2,NAD83,4302,32143 +4303,UTAH,SOUTH,2,NAD83,4303,32144 +4400,VERMONT,,1,NAD83,4400,32145 +4501,VIRGINIA,NORTH,2,NAD83,4501,32146 +4502,VIRGINIA,SOUTH,2,NAD83,4502,32147 +4601,WASHINGTON,NORTH,2,NAD83,4601,32148 +4602,WASHINGTON,SOUTH,2,NAD83,4602,32149 +4701,"WEST VIRGINIA",NORTH,2,NAD83,4701,32150 +4702,"WEST VIRGINIA",SOUTH,2,NAD83,4702,32151 +4801,WISCONSIN,NORTH,2,NAD83,4801,32152 +4802,WISCONSIN,CENTRAL,2,NAD83,4802,32153 +4803,WISCONSIN,SOUTH,2,NAD83,4803,32154 +4901,WYOMING,EAST,1,NAD83,4901,32155 +4902,WYOMING,"EAST CENTRAL",1,NAD83,4902,32156 +4903,WYOMING,"WEST CENTRAL",1,NAD83,4903,32157 +4904,WYOMING,WEST,1,NAD83,4904,32158 +5001,ALASKA,"ZONE NO. 1",4,NAD83,5001,26931 +5002,ALASKA,"ZONE NO. 2",1,NAD83,5002,26932 +5003,ALASKA,"ZONE NO. 3",1,NAD83,5003,26933 +5004,ALASKA,"ZONE NO. 4",1,NAD83,5004,26934 +5005,ALASKA,"ZONE NO. 5",1,NAD83,5005,26935 +5006,ALASKA,"ZONE NO. 6",1,NAD83,5006,26936 +5007,ALASKA,"ZONE NO. 7",1,NAD83,5007,26937 +5008,ALASKA,"ZONE NO. 8",1,NAD83,5008,26938 +5009,ALASKA,"ZONE NO. 9",1,NAD83,5009,26939 +5010,ALASKA,"ZONE NO. 10",2,NAD83,5010,26940 +5101,HAWAII,1,1,NAD83,5101,26961 +5102,HAWAII,2,1,NAD83,5102,26962 +5103,HAWAII,3,1,NAD83,5103,26963 +5104,HAWAII,4,1,NAD83,5104,26964 +5105,HAWAII,5,1,NAD83,5105,26965 +5200,"PUERTO RICO AND","VIRGIN ISLANDS",2,NAD83,5200,32161 +10101,ALABAMA,EAST,1,NAD27,101,26729 +10102,ALABAMA,WEST,1,NAD27,102,26730 +10201,ARIZONA,EAST,1,NAD27,201,26748 +10202,ARIZONA,CENTRAL,1,NAD27,202,26749 +10203,ARIZONA,WEST,1,NAD27,203,26750 +10301,ARKANSAS,NORTH,2,NAD27,301,26751 +10302,ARKANSAS,SOUTH,2,NAD27,302,26752 +10401,CALIFORNIA,I,2,NAD27,401,26741 +10402,CALIFORNIA,II,2,NAD27,402,26742 +10403,CALIFORNIA,III,2,NAD27,403,26743 +10404,CALIFORNIA,IV,2,NAD27,404,26744 +10405,CALIFORNIA,V,2,NAD27,405,26745 +10406,CALIFORNIA,VI,2,NAD27,406,26746 +10407,CALIFORNIA,VII,2,NAD27,407,26799 +10501,COLORADO,NORTH,2,NAD27,501,26753 +10502,COLORADO,CENTRAL,2,NAD27,502,26754 +10503,COLORADO,SOUTH,2,NAD27,503,26755 +10600,CONNECTICUT,,2,NAD27,600,26756 +10700,DELAWARE,,1,NAD27,700,26757 +10901,FLORIDA,EAST,1,NAD27,901,26758 +10902,FLORIDA,WEST,1,NAD27,902,26759 +10903,FLORIDA,NORTH,2,NAD27,903,26760 +11001,GEORGIA,EAST,1,NAD27,1001,26766 +11002,GEORGIA,WEST,1,NAD27,1002,26767 +11101,IDAHO,EAST,1,NAD27,1101,26768 +11102,IDAHO,CENTRAL,1,NAD27,1102,26769 +11103,IDAHO,WEST,1,NAD27,1103,26770 +11201,ILLINOIS,EAST,1,NAD27,1201,26771 +11202,ILLINOIS,WEST,1,NAD27,1202,26772 +11301,INDIANA,EAST,1,NAD27,1301,26773 +11302,INDIANA,WEST,1,NAD27,1302,26774 +11401,IOWA,NORTH,2,NAD27,1401,26775 +11402,IOWA,SOUTH,2,NAD27,1402,26776 +11501,KANSAS,NORTH,2,NAD27,1501,26777 +11502,KANSAS,SOUTH,2,NAD27,1502,26778 +11601,KENTUCKY,NORTH,2,NAD27,1601,26779 +11602,KENTUCKY,SOUTH,2,NAD27,1602,26780 +11701,LOUISIANA,NORTH,2,NAD27,1701,26781 +11702,LOUISIANA,SOUTH,2,NAD27,1702,26782 +11703,LOUISIANA,OFFSHORE,2,NAD27,1703, +11801,MAINE,EAST,1,NAD27,1801,26783 +11802,MAINE,WEST,1,NAD27,1802,26784 +11900,MARYLAND,,2,NAD27,1900,26785 +12001,MASSACHUSETTS,MAINLAND,2,NAD27,2001,26786 +12002,MASSACHUSETTS,ISLAND,2,NAD27,2002,26787 +12101,MICHIGAN,EAST,1,NAD27,2101,26801 +12102,MICHIGAN,"CENTRAL/M",1,NAD27,2102,26802 +12103,MICHIGAN,WEST,1,NAD27,2103,26803 +12111,MICHIGAN,NORTH,2,NAD27,2111,26811 +12112,MICHIGAN,"CENTRAL/L",2,NAD27,2112,26812 +12113,MICHIGAN,SOUTH,2,NAD27,2113,26813 +12201,MINNESOTA,NORTH,2,NAD27,2201,26791 +12202,MINNESOTA,CENTRAL,2,NAD27,2202,26792 +12203,MINNESOTA,SOUTH,2,NAD27,2203,26793 +12301,MISSISSIPPI,EAST,1,NAD27,2301,26794 +12302,MISSISSIPPI,WEST,1,NAD27,2302,26795 +12401,MISSOURI,EAST,1,NAD27,2401,26796 +12402,MISSOURI,CENTRAL,1,NAD27,2402,26797 +12403,MISSOURI,WEST,1,NAD27,2403,26798 +12501,MONTANA,NORTH,2,NAD27,2501,32001 +12502,MONTANA,CENTRAL,2,NAD27,2502,32002 +12503,MONTANA,SOUTH,2,NAD27,2503,32003 +12601,NEBRASKA,NORTH,2,NAD27,2601,32005 +12602,NEBRASKA,SOUTH,2,NAD27,2602,32006 +12701,NEVADA,EAST,1,NAD27,2701,32007 +12702,NEVADA,CENTRAL,1,NAD27,2702,32008 +12703,NEVADA,WEST,1,NAD27,2703,32009 +12800,"NEW HAMPSHIRE",,1,NAD27,2800,32010 +12900,"NEW JERSEY",,1,NAD27,2900,32011 +13001,"NEW MEXICO",EAST,1,NAD27,3001,32012 +13002,"NEW MEXICO",CENTRAL,1,NAD27,3002,32013 +13003,"NEW MEXICO",WEST,1,NAD27,3003,32014 +13101,"NEW YORK",EAST,1,NAD27,3101,32015 +13102,"NEW YORK",CENTRAL,1,NAD27,3102,32016 +13103,"NEW YORK",WEST,1,NAD27,3103,32017 +13104,"NEW YORK","LONG ISLAND",2,NAD27,3104,32018 +13200,"NORTH CAROLINA",,2,NAD27,3200,32019 +13301,"NORTH DAKOTA",NORTH,2,NAD27,3301,32020 +13302,"NORTH DAKOTA",SOUTH,2,NAD27,3302,32021 +13401,OHIO,NORTH,2,NAD27,3401,32022 +13402,OHIO,SOUTH,2,NAD27,3402,32023 +13501,OKLAHOMA,NORTH,2,NAD27,3501,32024 +13502,OKLAHOMA,SOUTH,2,NAD27,3502,32025 +13601,OREGON,NORTH,2,NAD27,3601,32026 +13602,OREGON,SOUTH,2,NAD27,3602,32027 +13701,PENNSYLVANIA,NORTH,2,NAD27,3701,32028 +13702,PENNSYLVANIA,SOUTH,2,NAD27,3702,32029 +13800,"RHODE ISLAND",,1,NAD27,3800,32030 +13901,"SOUTH CAROLINA",NORTH,2,NAD27,3901,32031 +13902,"SOUTH CAROLINA",SOUTH,2,NAD27,3902,32033 +14001,"SOUTH DAKOTA",NORTH,2,NAD27,4001,32034 +14002,"SOUTH DAKOTA",SOUTH,2,NAD27,4002,32035 +14100,TENNESSEE,,2,NAD27,4100,2204 +14201,TEXAS,NORTH,2,NAD27,4201,32037 +14202,TEXAS,"NORTH CENTRAL",2,NAD27,4202,32038 +14203,TEXAS,CENTRAL,2,NAD27,4203,32039 +14204,TEXAS,"SOUTH CENTRAL",2,NAD27,4204,32040 +14205,TEXAS,SOUTH,2,NAD27,4205,32041 +14301,UTAH,NORTH,2,NAD27,4301,32042 +14302,UTAH,CENTRAL,2,NAD27,4302,32043 +14303,UTAH,SOUTH,2,NAD27,4303,32044 +14400,VERMONT,,1,NAD27,4400,32045 +14501,VIRGINIA,NORTH,2,NAD27,4501,32046 +14502,VIRGINIA,SOUTH,2,NAD27,4502,32047 +14601,WASHINGTON,NORTH,2,NAD27,4601,32048 +14602,WASHINGTON,SOUTH,2,NAD27,4602,32049 +14701,"WEST VIRGINIA",NORTH,2,NAD27,4701,32050 +14702,"WEST VIRGINIA",SOUTH,2,NAD27,4702,32051 +14801,WISCONSIN,NORTH,2,NAD27,4801,32052 +14802,WISCONSIN,CENTRAL,2,NAD27,4802,32053 +14803,WISCONSIN,SOUTH,2,NAD27,4803,32054 +14901,WYOMING,EAST,1,NAD27,4901,32055 +14902,WYOMING,"EAST CENTRAL",1,NAD27,4902,32056 +14903,WYOMING,"WEST CENTRAL",1,NAD27,4903,32057 +14904,WYOMING,WEST,1,NAD27,4904,32058 +15001,ALASKA,"ZONE NO. 1",4,NAD27,5001,26731 +15002,ALASKA,"ZONE NO. 2",1,NAD27,5002,26732 +15003,ALASKA,"ZONE NO. 3",1,NAD27,5003,26733 +15004,ALASKA,"ZONE NO. 4",1,NAD27,5004,26734 +15005,ALASKA,"ZONE NO. 5",1,NAD27,5005,26735 +15006,ALASKA,"ZONE NO. 6",1,NAD27,5006,26736 +15007,ALASKA,"ZONE NO. 7",1,NAD27,5007,26737 +15008,ALASKA,"ZONE NO. 8",1,NAD27,5008,26738 +15009,ALASKA,"ZONE NO. 9",1,NAD27,5009,26739 +15010,ALASKA,"ZONE NO. 10",2,NAD27,5010,26740 +15101,HAWAII,1,1,NAD27,5101,3561 +15102,HAWAII,2,1,NAD27,5102,3562 +15103,HAWAII,3,1,NAD27,5103,3563 +15104,HAWAII,4,1,NAD27,5104,3564 +15105,HAWAII,5,1,NAD27,5105,3565 +15201,"PUERTO RICO AND VIRGIN ISLANDS",,2,NAD27,5201,3991 +15202,"VIRGIN ISLANDS","ST. CROIX",2,NAD27,5202,3992 +15300,"AMERICAN SAMOA",,2,NAD27,5300,2155 +15400,"GUAM ISLAND",,3,NAD27,5400, diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml new file mode 100644 index 00000000..11366e15 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml @@ -0,0 +1,28 @@ + + + states + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json new file mode 100644 index 00000000..9f217059 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json @@ -0,0 +1,190 @@ +{ + "type": "TileMatrixSetType", + "title": "LINZ Antarctic Map Tile Grid (Ross Sea Region)", + "identifier": "LINZAntarticaMapTilegrid", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/5482", + "tileMatrix": [ + { + "type": "TileMatrixType", + "identifier": "0", + "scaleDenominator": 409600000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1, + "matrixHeight": 1 + }, + { + "type": "TileMatrixType", + "identifier": "1", + "scaleDenominator": 204800000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1, + "matrixHeight": 1 + }, + { + "type": "TileMatrixType", + "identifier": "2", + "scaleDenominator": 102400000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 2, + "matrixHeight": 2 + }, + { + "type": "TileMatrixType", + "identifier": "3", + "scaleDenominator": 51200000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 4, + "matrixHeight": 4 + }, + { + "type": "TileMatrixType", + "identifier": "4", + "scaleDenominator": 25600000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 7, + "matrixHeight": 7 + }, + { + "type": "TileMatrixType", + "identifier": "5", + "scaleDenominator": 12800000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 13, + "matrixHeight": 13 + }, + { + "type": "TileMatrixType", + "identifier": "6", + "scaleDenominator": 6400000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 26, + "matrixHeight": 26 + }, + { + "type": "TileMatrixType", + "identifier": "7", + "scaleDenominator": 3200000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 52, + "matrixHeight": 52 + }, + { + "type": "TileMatrixType", + "identifier": "8", + "scaleDenominator": 1600000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 104, + "matrixHeight": 104 + }, + { + "type": "TileMatrixType", + "identifier": "9", + "scaleDenominator": 800000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 207, + "matrixHeight": 207 + }, + { + "type": "TileMatrixType", + "identifier": "10", + "scaleDenominator": 400000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 413, + "matrixHeight": 413 + }, + { + "type": "TileMatrixType", + "identifier": "11", + "scaleDenominator": 200000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 826, + "matrixHeight": 826 + }, + { + "type": "TileMatrixType", + "identifier": "12", + "scaleDenominator": 100000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1652, + "matrixHeight": 1652 + }, + { + "type": "TileMatrixType", + "identifier": "13", + "scaleDenominator": 50000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 3303, + "matrixHeight": 3303 + } + ] +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json new file mode 100644 index 00000000..ec221e1f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json @@ -0,0 +1,268 @@ +{ + "type": "TileMatrixSetType", + "identifier": "APSTILE", + "title": "Alaska Polar Stereographic-based tiled coordinate reference system for the Arctic region.", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/5936", + "tileMatrix": [ + { + "matrixHeight": 1, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 1, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 852895761.9785715 + }, + { + "matrixHeight": 2, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 2, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 426447880.98928577 + }, + { + "matrixHeight": 4, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 4, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 213223940.49464288 + }, + { + "matrixHeight": 8, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 8, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 106611970.24732144 + }, + { + "matrixHeight": 16, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 16, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 53305985.12366072 + }, + { + "matrixHeight": 32, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 32, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 26652992.56183036 + }, + { + "matrixHeight": 64, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 64, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 13326496.28091518 + }, + { + "matrixHeight": 128, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 128, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 6663248.14045759 + }, + { + "matrixHeight": 256, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 256, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 3331624.070228795 + }, + { + "matrixHeight": 512, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 512, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 1665812.0351143975 + }, + { + "matrixHeight": 1024, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 1024, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 832906.0175571988 + }, + { + "matrixHeight": 2048, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 2048, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 416453.0087785994 + }, + { + "matrixHeight": 4096, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 4096, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 208226.5043892997 + }, + { + "matrixHeight": 8192, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 8192, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 104113.25219464985 + }, + { + "matrixHeight": 16384, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 16384, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 52056.62609732492 + }, + { + "matrixHeight": 32768, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 32768, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 26028.31304866246 + }, + { + "matrixHeight": 65536, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 65536, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 13014.15652433123 + }, + { + "matrixHeight": 131072, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 131072, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 6507.078262165615 + }, + { + "matrixHeight": 262144, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 262144, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 3253.5391310828077 + }, + { + "matrixHeight": 524288, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 524288, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 1626.7695655414038 + } + ] +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json new file mode 100644 index 00000000..2a391211 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json @@ -0,0 +1,346 @@ +{ + "type": "TileMatrixSetType", + "identifier": "CBMTILE", + "title": "Lambert Conformal Conic-based tiled coordinate reference system for Canada.", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/3978", + "tileMatrix": [ + { + "matrixHeight": 5, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 5, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 137016643.08090523 + }, + { + "matrixHeight": 9, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 9, + "identifier": "1", + "type": "TileMatrixType", + "scaleDenominator": 80320101.1163927317 + }, + { + "matrixHeight": 15, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 15, + "identifier": "2", + "type": "TileMatrixType", + "scaleDenominator": 47247118.3037604243 + }, + { + "matrixHeight": 25, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 25, + "identifier": "3", + "type": "TileMatrixType", + "scaleDenominator": 28348270.982256256 + }, + { + "matrixHeight": 42, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 42, + "identifier": "4", + "type": "TileMatrixType", + "scaleDenominator": 16536491.40631615 + }, + { + "matrixHeight": 73, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 73, + "identifier": "5", + "type": "TileMatrixType", + "scaleDenominator": 9449423.66075208597 + }, + { + "matrixHeight": 121, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 121, + "identifier": "6", + "type": "TileMatrixType", + "scaleDenominator": 5669654.1964512514 + }, + { + "matrixHeight": 208, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 208, + "identifier": "7", + "type": "TileMatrixType", + "scaleDenominator": 3307298.2812632299 + }, + { + "matrixHeight": 363, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 363, + "identifier": "8", + "type": "TileMatrixType", + "scaleDenominator": 1889884.73215041705 + }, + { + "matrixHeight": 605, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 605, + "identifier": "9", + "type": "TileMatrixType", + "scaleDenominator": 1133930.83929025033 + }, + { + "matrixHeight": 1036, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1036, + "identifier": "10", + "type": "TileMatrixType", + "scaleDenominator": 661459.656252646004 + }, + { + "matrixHeight": 1727, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1727, + "identifier": "11", + "type": "TileMatrixType", + "scaleDenominator": 396875.793751587567 + }, + { + "matrixHeight": 2900, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 2900, + "identifier": "12", + "type": "TileMatrixType", + "scaleDenominator": 236235.591518802132 + }, + { + "matrixHeight": 5000, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 5000, + "identifier": "13", + "type": "TileMatrixType", + "scaleDenominator": 137016.643080905225 + }, + { + "matrixHeight": 8530, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 8530, + "identifier": "14", + "type": "TileMatrixType", + "scaleDenominator": 80320.1011163927178 + }, + { + "matrixHeight": 14501, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 14501, + "identifier": "15", + "type": "TileMatrixType", + "scaleDenominator": 47247.1183037604278 + }, + { + "matrixHeight": 24167, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 24167, + "identifier": "16", + "type": "TileMatrixType", + "scaleDenominator": 28348.2709822562538 + }, + { + "matrixHeight": 41429, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 41429, + "identifier": "17", + "type": "TileMatrixType", + "scaleDenominator": 16536.4914063161486 + }, + { + "matrixHeight": 72500, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 72500, + "identifier": "18", + "type": "TileMatrixType", + "scaleDenominator": 9449.4236607520852 + }, + { + "matrixHeight": 120834, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 120834, + "identifier": "19", + "type": "TileMatrixType", + "scaleDenominator": 5669.65419645125075 + }, + { + "matrixHeight": 207143, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 207143, + "identifier": "20", + "type": "TileMatrixType", + "scaleDenominator": 3307.29828126322991 + }, + { + "matrixHeight": 362501, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 362501, + "identifier": "21", + "type": "TileMatrixType", + "scaleDenominator": 1889.88473215041699 + }, + { + "matrixHeight": 604167, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 604167, + "identifier": "22", + "type": "TileMatrixType", + "scaleDenominator": 1133.93083929025011 + }, + { + "matrixHeight": 1035715, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1035715, + "identifier": "23", + "type": "TileMatrixType", + "scaleDenominator": 661.459656252645914 + }, + { + "matrixHeight": 1726191, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1726191, + "identifier": "24", + "type": "TileMatrixType", + "scaleDenominator": 396.875793751587537 + }, + { + "matrixHeight": 2900001, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 2900001, + "identifier": "25", + "type": "TileMatrixType", + "scaleDenominator": 236.235591518802124 + } + ] +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json new file mode 100644 index 00000000..779f9b72 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json @@ -0,0 +1,243 @@ +{ + "type": "TileMatrixSetType", + "title": "LINZ NZTM2000 Map Tile Grid", + "abstract": "See https://www.linz.govt.nz/data/linz-data-service/guides-and-documentation/nztm2000-map-tile-service-schema", + "identifier": "NZTM2000", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/2193", + "boundingBox": + { + "type": "BoundingBoxType", + "crs": "http://www.opengis.net/def/crs/EPSG/0/2193", + "lowerCorner": [ + 3087000, + 274000 + ], + "upperCorner": [ + 7173000, + 3327000 + ] + }, + "tileMatrix": [ + { + "type": "TileMatrixType", + "identifier": "0", + "scaleDenominator": 32000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 2, + "matrixHeight": 4 + }, + { + "type": "TileMatrixType", + "identifier": "1", + "scaleDenominator": 16000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 4, + "matrixHeight": 8 + }, + { + "type": "TileMatrixType", + "identifier": "2", + "scaleDenominator": 8000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 8, + "matrixHeight": 16 + }, + { + "type": "TileMatrixType", + "identifier": "3", + "scaleDenominator": 4000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 16, + "matrixHeight": 32 + }, + { + "type": "TileMatrixType", + "identifier": "4", + "scaleDenominator": 2000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 32, + "matrixHeight": 64 + }, + { + "type": "TileMatrixType", + "identifier": "5", + "scaleDenominator": 1000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 64, + "matrixHeight": 128 + }, + { + "type": "TileMatrixType", + "identifier": "6", + "scaleDenominator": 500000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 128, + "matrixHeight": 256 + }, + { + "type": "TileMatrixType", + "identifier": "7", + "scaleDenominator": 250000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 256, + "matrixHeight": 512 + }, + { + "type": "TileMatrixType", + "identifier": "8", + "scaleDenominator": 100000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 640, + "matrixHeight": 1280 + }, + { + "type": "TileMatrixType", + "identifier": "9", + "scaleDenominator": 50000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1280, + "matrixHeight": 2560 + }, + { + "type": "TileMatrixType", + "identifier": "10", + "scaleDenominator": 25000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 2560, + "matrixHeight": 5120 + }, + { + "type": "TileMatrixType", + "identifier": "11", + "scaleDenominator": 10000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 6400, + "matrixHeight": 12800 + }, + { + "type": "TileMatrixType", + "identifier": "12", + "scaleDenominator": 5000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 12800, + "matrixHeight": 25600 + }, + { + "type": "TileMatrixType", + "identifier": "13", + "scaleDenominator": 2500, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 25600, + "matrixHeight": 51200 + }, + { + "type": "TileMatrixType", + "identifier": "14", + "scaleDenominator": 1000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 64000, + "matrixHeight": 128000 + }, + { + "type": "TileMatrixType", + "identifier": "15", + "scaleDenominator": 500, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 128000, + "matrixHeight": 256000 + }, + { + "type": "TileMatrixType", + "identifier": "16", + "scaleDenominator": 250, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 256000, + "matrixHeight": 512000 + } + ] +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/trailer.dxf b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/trailer.dxf new file mode 100644 index 00000000..19ebd400 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/trailer.dxf @@ -0,0 +1,434 @@ + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary +281 + 1 + 3 +ACAD_GROUP +350 +D + 3 +ACAD_LAYOUT +350 +1A + 3 +ACAD_MLEADERSTYLE +350 +43 + 3 +ACAD_PLOTSETTINGS +350 +19 + 3 +ACAD_PLOTSTYLENAME +350 +E + 3 +ACAD_TABLESTYLE +350 +42 + 0 +DICTIONARY + 5 +D +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +DICTIONARY + 5 +1A +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Layout1 +350 +1E + 3 +Model +350 +22 + 0 +DICTIONARY + 5 +43 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +DICTIONARY + 5 +19 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +ACDBDICTIONARYWDFLT + 5 +E +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Normal +350 +F +100 +AcDbDictionaryWithDefault +340 +F + 0 +DICTIONARY + 5 +42 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +LAYOUT + 5 +1E +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 688 + 72 + 0 + 73 + 0 + 74 + 5 + 7 + + 75 + 16 + 76 + 0 + 77 + 2 + 78 + 300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 + 1 + 71 + 1 + 10 +0.0 + 20 +0.0 + 11 +12.0 + 21 +9.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1.000000000000000E+20 + 24 +1.000000000000000E+20 + 34 +1.000000000000000E+20 + 15 +-1.000000000000000E+20 + 25 +-1.000000000000000E+20 + 35 +-1.000000000000000E+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1B + 0 +LAYOUT + 5 +22 +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 1712 + 72 + 0 + 73 + 0 + 74 + 0 + 7 + + 75 + 0 + 76 + 0 + 77 + 2 + 78 + 300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 + 1 + 71 + 0 + 10 +0.0 + 20 +0.0 + 11 +12.0 + 21 +9.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +30.0 + 24 +49.75 + 34 +0.0 + 15 +130.5 + 25 +163.1318914119703 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1F +331 +29 +0 +ACDBPLACEHOLDER + 5 +F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E + 0 +ENDSEC + 0 +EOF diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xml new file mode 100644 index 00000000..bc505d03 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xml @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xsd new file mode 100644 index 00000000..5b6d4bd5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/gdal/vdv452.xsd @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/CH b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/CH new file mode 100644 index 00000000..725328f4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/CH @@ -0,0 +1,22 @@ +# This init file provides definitions for CH1903 and CH1903/LV03 +# projections using the distortion grids developed by Swisstopo. +# See: https://shop.swisstopo.admin.ch/en/products/geo_software/GIS_info +# +# You'll need to download the grids separately and put in a directory +# scanned by libproj. +# +# Note that an independent effort was made to derive an usable grid +# from the CH1903->CH1903+ grid initially available from the Swisstopo +# website. You can read about this other effort here: +# http://lists.maptools.org/pipermail/proj/2012-February/006093.html +# It may be of interest because the latter was by some reported as being +# more accurate than the former: +# http://lists.maptools.org/pipermail/proj/2012-February/006119.html +# +# This init file uses the official one +# + +origin=Swisstopo +lastupdate=2012-02-27 +# CH1903/LV03 +<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENyx06_ETRS.gsb +no_defs +# CH1903 +<1903> +proj=longlat +ellps=bessel +nadgrids=CHENyx06_ETRS.gsb +no_defs <> diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/GL27 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/GL27 new file mode 100644 index 00000000..73fa9754 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/GL27 @@ -0,0 +1,23 @@ +# SCCSID @(#)GL27 1.1 93/08/25 GIE REL +# Great Lakes Grids + +lastupdate=1993-08-25 + # Lake Erie, Ontario and St. Lawrence River. + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=78d00'W lat_0=44d00'N alpha=55d40' + x_0=-3950000 y_0=-3430000 + no_defs <> + # Lake Huron + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=82d00'W lat_0=43d00'N alpha=350d37' + x_0=1200000 y_0=-3500000 + no_defs <> + # Lake Michigan + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=87d00'W lat_0=44d00'N alpha=15d00' + x_0=-1000000 y_0=-4300000 + no_defs <> + # Lake Superior, Lake of the Woods + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=88d50'0.256"W lat_0=47d12'21.554"N alpha=285d41'42.593" + x_0=9000000 y_0=-1600000 + no_defs <> diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2000 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2000 new file mode 100644 index 00000000..439d1970 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2000 @@ -0,0 +1,24 @@ +# ITRF2000 params are in cm/year, PJ_helmert uses m/year + +version=1.0.0 +origin=ftp://itrf.ensg.ign.fr/pub/itrf/ITRF.TP +lastupdate=2017-07-25 + +# ITRF2000 -> ITRF2005 is only defined the opposite way, so we flip the sign on all +# parameters to get the opposite transformation. Parameters from http://itrf.ign.fr/ITRF_solutions/2005/tp_05-00.php + +proj=helmert +x=-0.0001 +y=0.0008 +z=0.0058 +s=-0.0004 +dx=0.0002 +dy=-0.0001 +dz=0.0018 +ds=-0.00008 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector + + +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector + + +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector + + +proj=helmert +x=0.0127 +y=0.0065 +z=-0.0209 +s=0.00195 +rx=-0.00039 +ry=0.00080 +rz=-0.00114 +dx=-0.0029 +dy=-0.0002 +dz=-0.0006 +ds=0.00001 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0147 +y=0.0135 +z=-0.0139 +s=0.00075 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0267 +y=0.0275 +z=-0.0199 +s=0.00215 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0247 +y=0.0235 +z=-0.0359 +s=0.00245 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0297 +y=0.0475 +z=-0.0739 +s=0.00585 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0247 +y=0.0115 +z=-0.0979 +s=0.00895 +rx=0.0001 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2008 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2008 new file mode 100644 index 00000000..bd5f7cee --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2008 @@ -0,0 +1,94 @@ +# ITRF2008 params are in mm/year, PJ_helmert uses m/year + +version=1.0.0 +origin=http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2008_ITRFs.txt +lastupdate=2017-07-26 + + +proj=helmert +x=-0.002 +y=-0.0009 +z=-0.0047 +s=0.00094 +dx=0.0003 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=-0.0019 +y=-0.0017 +z=-0.0105 +s=0.00134 +dx=0.0001 +dy=0.0001 +dz=-0.0018 +ds=0.00008 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=-0.024 +y=0.0024 +z=-0.00386 +s=0.00341 +rx=-0.00171 +ry=-0.00148 +rz=-0.0003 +dx=-0.0028 +dy=-0.0001 +dz=-0.0024 +ds=0.00009 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0128 +y=0.0046 +z=-0.0412 +s=0.00221 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0248 +y=0.0186 +z=-0.0472 +s=0.00361 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0228 +y=0.0146 +z=-0.0632 +s=0.00391 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0278 +y=0.0386 +z=-0.1012 +s=0.00731 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0228 +y=0.0026 +z=-0.1252 +s=0.01041 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +# ITRF2008 Plate Motion Model parameters +# +# As described in +# +# Altamimi, Z., L. Métivier, and X. Collilieux (2012), ITRF2008 plate motion model, +# J. Geophys. Res., 117, B07402, doi:10.1029/2011JB008930. + + + +proj=helmert +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector + + +proj=helmert +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector + + +proj=helmert +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector + + +proj=helmert +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector + + +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector + + +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector + + +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector + + +proj=helmert +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector + + +proj=helmert +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector + + +proj=helmert +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector + + +proj=helmert +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector + + +proj=helmert +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector + + +proj=helmert +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector + + +proj=helmert +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector + + +# Plate names suffixed by _T (for Translation) that includes the translation +# rates +dx=0.00041 +dy=0.00022 +dz=0.00041 given by Table 2 of the ITRF2008 plate motion model +# paper + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2014 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2014 new file mode 100644 index 00000000..95f8179b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2014 @@ -0,0 +1,55 @@ +# ITRF2014 params are in mm/year, PJ_helmert uses m/year + +version=1.0.0 +origin=http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2014_ITRFs.txt +lastupdate=2017-07-26 + + +proj=helmert +x=0.0016 +y=0.0019 +z=0.0024 +s=-0.00002 +dz=-0.0001 +ds=0.00003 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0026 +y=0.001 +z=-0.0023 +s=0.00092 +dx=0.0003 +dz=-0.0001 +ds=0.00003 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0007 +y=0.0012 +z=-0.0261 +s=0.00212 +dx=0.0001 +dy=0.0001 +dz=-0.0019 +ds=0.00011 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=-0.0504 +y=0.0033 +z=-0.0602 +s=0.00429 +rx=-0.00281 +ry=-0.00338 +rz=0.0004 +dx=-0.0028 +dy=-0.0001 +dz=-0.0025 +ds=0.00012 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0154 +y=0.0015 +z=-0.0708 +s=0.00309 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0274 +y=0.0155 +z=-0.0768 +s=0.00449 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0254 +y=0.0115 +z=-0.0928 +s=0.00479 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0304 +y=0.0355 +z=-0.1308 +s=0.00819 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + +# ITRF2014 Plate Motion Model parameters +# +# As described in +# +# Z. Altamimi et al, 2017, ITRF2014 plate motion model, +# doi: 10.1093/gji/ggx136 + + +proj=helmert +drx=-0.000248 +dry=-0.000324 +drz=0.000675 +convention=position_vector + + +proj=helmert +drx=0.001154 +dry=-0.000136 +drz=0.001444 +convention=position_vector + + +proj=helmert +drx=0.001510 +dry=0.001182 +drz=0.001215 +convention=position_vector + + +proj=helmert +drx=-0.000085 +dry=-0.000531 +drz=0.000770 +convention=position_vector + + +proj=helmert +drx=0.001154 +dry=-0.000005 +drz=0.001454 +convention=position_vector + + +proj=helmert +drx=-0.000333 +dry=-0.001544 +drz=0.001623 +convention=position_vector + + +proj=helmert +drx=0.000024 +dry=-0.000694 +drz=-0.000063 +convention=position_vector + + +proj=helmert +drx=0.000099 +dry=-0.000614 +drz=0.000733 +convention=position_vector + + +proj=helmert +drx=-0.000409 +dry=0.001047 +drz=-0.002169 +convention=position_vector + + +proj=helmert +drx=-0.000270 +dry=-0.000301 +drz=-0.000140 +convention=position_vector + + +proj=helmert +drx=-0.000121 +dry=-0.000794 +drz=0.000884 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2020 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2020 new file mode 100644 index 00000000..45aaa568 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/ITRF2020 @@ -0,0 +1,91 @@ +# ITRF2020 params are in mm/year, PJ_helmert uses m/year + +# Generated with generate_itrf2020.py from EPSG database + + +proj=helmert +x=-0.0014 +y=-0.0009 +z=0.0014 +s=-0.00042 +dy=-0.0001 +dz=0.0002 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0002 +y=0.001 +z=0.0033 +s=-0.00029 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0027 +y=0.0001 +z=-0.0014 +s=0.00065 +dx=0.0003 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=-0.0002 +y=0.0008 +z=-0.0342 +s=0.00225 +dx=0.0001 +dz=-0.0017 +ds=0.00011 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=-0.0658 +y=0.0019 +z=-0.0713 +rx=-0.00336 +ry=-0.00433 +rz=0.00075 +s=0.00447 +dx=-0.0028 +dy=-0.0002 +dz=-0.0023 +drx=-0.00011 +dry=-0.00019 +drz=7e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0145 +y=-0.0019 +z=-0.0859 +rz=0.00036 +s=0.00327 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0265 +y=0.0121 +z=-0.0919 +rz=0.00036 +s=0.00467 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0245 +y=0.0081 +z=-0.1079 +rz=0.00036 +s=0.00497 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0295 +y=0.0321 +z=-0.1459 +rz=0.00036 +s=0.00837 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0245 +y=-0.0039 +z=-0.1699 +rx=0.0001 +rz=0.00036 +s=0.01147 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + +# ITRF2020 Plate Motion Model parameters +# +# As described in https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2023GL106373 +# (and also in https://itrf.ign.fr/docs/solutions/itrf2020/ITRF2020-PMM.dat, but with +# different units) + + +proj=helmert +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector + + +proj=helmert +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector + + +proj=helmert +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector + + +proj=helmert +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector + + +proj=helmert +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector + + +proj=helmert +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector + + +proj=helmert +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector + + +proj=helmert +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector + + +proj=helmert +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector + + +proj=helmert +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector + + +proj=helmert +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector + + +proj=helmert +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector + + +proj=helmert +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector + +# Plate names suffixed by _T (for Translation) that includes the translation +# rates +dx=0.00037 +dy=0.00035 +dz=0.00074 given by Table 2 of the ITRF2020 plate motion model +# paper + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json new file mode 100644 index 00000000..d7a6d162 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json @@ -0,0 +1,582 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Schema for deformation models", + "type": "object", + "properties": { + "file_type": { + "type": "string", + "enum": [ + "deformation_model_master_file" + ], + "description": "File type. Always \"deformation_model_master_file\"" + }, + "format_version": { + "type": "string", + "enum": [ + "1.0" + ] + }, + "name": { + "type": "string", + "description": "A brief descriptive name of the deformation model" + }, + "version": { + "type": "string", + "description": "A string identifying the version of the deformation model. The format for specifying version will be defined by the agency responsible for the deformation model" + }, + "publication_date": { + "$ref": "#/definitions/datetime", + "description": "The date on which this version of the deformation model was published (or possibly the date on which it takes effect?)" + }, + "license": { + "type": "string", + "description": "License under which the model is published" + }, + "description": { + "type": "string", + "description": "A text description of the model" + }, + "authority": { + "type": "object", + "description": "Basic information about the agency responsible for the data set", + "properties": { + "name": { + "type": "string", + "description": "The name of the agency" + }, + "url": { + "type": "string", + "description": "The url of the agency website", + "format": "uri" + }, + "address": { + "type": "string", + "description": "The postal address of the agency" + }, + "email": { + "type": "string", + "description": "An email contact address for the agency", + "format": "email" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "links": { + "type": "array", + "description": "Links to related information", + "items": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL holding the information", + "format": "uri" + }, + "rel": { + "type": "string", + "description": "The relationship to the dataset. Proposed relationships are:\n- \"about\": a web page for human consumption describing the model\n- \"source\": the authoritative source data from which the deformation model is built.\n- \"metadata\": ISO 19115 XML metadata regarding the deformation model." + }, + "type": { + "type": "string", + "description": "MIME type" + }, + "title": { + "type": "string", + "description": "Description of the link" + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + }, + "source_crs": { + "$ref": "#/definitions/crs", + "description": "The coordinate reference system to which the deformation model applies" + }, + "target_crs": { + "$ref": "#/definitions/crs", + "description": "For a time dependent coordinate transformation the coordinate reference system resulting from applying the deformation" + }, + "definition_crs": { + "$ref": "#/definitions/crs", + "description": "The coordinate reference system used to define the component spatial models. This proposal only supports using the same value for the source and definition coordinate reference system." + }, + "reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "A nominal reference epoch of the deformation model. This is not necessarily used to calculate the deformation model - each component defines its own time function." + }, + "uncertainty_reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "The uncertainties of the deformation model are calculated in terms of this epoch. This is described below in the Time functions section." + }, + "horizontal_offset_unit": { + "type": "string", + "enum": [ + "metre", + "degree" + ] + }, + "vertical_offset_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "horizontal_uncertainty_type": { + "type": "string", + "enum": [ + "circular 95% confidence limit" + ] + }, + "horizontal_uncertainty_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "vertical_uncertainty_type": { + "type": "string", + "enum": [ + "95% confidence limit" + ] + }, + "vertical_uncertainty_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "horizontal_offset_method": { + "type": "string", + "description": "Defines how the horizontal offsets are applied to geographic coordinates", + "enum": [ + "addition", + "geocentric" + ] + }, + "extent": { + "$ref": "#/definitions/extent", + "description": "Defines the region within which the deformation model is defined. It cannot be calculated outside this region. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" + }, + "time_extent": { + "type": "object", + "description": "Defines the range of times for which the model is valid, specified by a first and a last value. The deformation model is undefined for dates outside this range.", + "properties": { + "first": { + "$ref": "#/definitions/datetime" + }, + "last": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "first", + "last" + ], + "additionalProperties": false + }, + "components": { + "type": "array", + "items": { + "$ref": "#/definitions/component" + } + } + }, + "required": [ + "file_type", + "format_version", + "source_crs", + "target_crs", + "definition_crs", + "extent", + "time_extent", + "components" + ], + "additionalProperties": false, + "definitions": { + "component": { + "type": "object", + "definition": "A component describes an aspect of the deformation, such as glacial isostatic adjustment, secular deformation, earthquakes, etc.", + "properties": { + "description": { + "type": "string", + "description": "A text description of this component of the model" + }, + "extent": { + "$ref": "#/definitions/extent", + "description": "The region within the component is defined. Outside this region the component evaluates to 0. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" + }, + "displacement_type": { + "type": "string", + "description": "The displacement parameters defined by the model. The \"none\" option allows for a component which defines uncertainty with different grids to those defining displacement", + "enum": [ + "none", + "horizontal", + "vertical", + "3d" + ] + }, + "uncertainty_type": { + "type": "string", + "description": "The uncertainty parameters defined by the model", + "enum": [ + "none", + "horizontal", + "vertical", + "3d" + ] + }, + "horizontal_uncertainty": { + "type": "number", + "description": "The horizontal uncertainty to use if it is not defined explicitly in the spatial model" + }, + "vertical_uncertainty": { + "type": "number", + "description": "The vertical uncertainty to use if it is not defined explicitly in the spatial model" + }, + "spatial_model": { + "type": "object", + "description": "Defines the spatial model", + "properties": { + "type": { + "type": "string", + "description": "Specifies the type of the spatial model data file. Initially it is proposed that only GeoTIFF is supported", + "enum": [ + "GeoTIFF" + ] + }, + "interpolation_method": { + "type": "string", + "description": "Interpolation method", + "enum": [ + "bilinear", + "geocentric_bilinear" + ] + }, + "filename": { + "type": "string", + "description": "Specifies location of the spatial model GeoTIFF file relative to this JSON file" + }, + "md5_checksum": { + "type": "string", + "description": "A hex encoded MD5 checksum of the grid file that can be used to validate that it is the correct version of the file" + } + }, + "required": [ + "type", + "interpolation_method", + "filename" + ], + "additionalProperties": false + }, + "time_function": { + "$ref": "#/definitions/time_function" + } + }, + "required": [ + "description", + "extent", + "displacement_type", + "spatial_model", + "time_function" + ], + "additionalProperties": false + }, + "crs": { + "type": "string", + "pattern": "^[a-zA-Z]+:[a-zA-Z0-9]+$" + }, + "datetime": { + "type": "string", + "format": "date-time", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" + }, + "extent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "bbox" + ] + }, + "parameters": { + "type": "object", + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + } + } + } + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function": { + "description": "Function describing a multiplicative factor to apply to the spatial_model depending on the time", + "oneOf": [ + { + "$ref": "#/definitions/time_function_constant" + }, + { + "$ref": "#/definitions/time_function_velocity" + }, + { + "$ref": "#/definitions/time_function_step" + }, + { + "$ref": "#/definitions/time_function_reverse_step" + }, + { + "$ref": "#/definitions/time_function_piecewise" + }, + { + "$ref": "#/definitions/time_function_exponential" + } + ] + }, + "time_function_constant": { + "description": "The valuation of this function is 1 at any epoch", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "constant" + ] + }, + "parameters": { + "type": "object", + "properties": { + }, + "additionalProperties": false + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + "time_function_velocity": { + "description": "The valuation of this function is 0 at reference_epoch, and proportional to the time difference to it at other times", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "velocity" + ] + }, + "parameters": { + "type": "object", + "properties": { + "reference_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "reference_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_step": { + "description": "The valuation of this function is 0 before step_epoch, and 1 starting from it", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "step" + ] + }, + "parameters": { + "type": "object", + "properties": { + "step_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "step_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_reverse_step": { + "description": "The valuation of this function is 1 before step_epoch, and 0 starting from it", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "reverse_step" + ] + }, + "parameters": { + "type": "object", + "properties": { + "step_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "step_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_piecewise": { + "description": "Piecewise time function", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "piecewise" + ] + }, + "parameters": { + "type": "object", + "properties": { + "before_first": { + "type": "string", + "description": "Defines the behaviour of the function before the first defined epoch", + "enum": [ + "zero", + "constant", + "linear" + ] + }, + "after_last": { + "type": "string", + "description": "Defines the behaviour of the function after the last defined epoch", + "enum": [ + "zero", + "constant", + "linear" + ] + }, + "model": { + "type": "array", + "description": "A sorted array data points each defined by two elements, \"epoch\" defines the date/time of the data point, and \"scale_factor\" is the corresponding function value. The array is sorted in order of increasing epoch. Note: where the time function includes a step it is represented by two consecutive data points with the same epoch. The first defines the scale factor that applies before the epoch and the second the scale factor that applies after the epoch", + "items": { + "type": "object", + "properties": { + "epoch": { + "$ref": "#/definitions/datetime" + }, + "scale_factor": { + "type": "number" + } + }, + "required": [ + "epoch", + "scale_factor" + ], + "additionalProperties": false + }, + "minItems": 2 + } + }, + "required": [ + "before_first", + "after_last", + "model" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_exponential": { + "description": "The valuation of this function is an exponential function with a time-based relaxation constant", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "exponential" + ] + }, + "parameters": { + "type": "object", + "properties": { + "reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "The date/time at which the exponential decay starts" + }, + "end_epoch": { + "$ref": "#/definitions/datetime", + "description": "The date/time at which the exponential decay ends (optional)" + }, + "relaxation_constant": { + "type": "number", + "description": "Relaxation constant in years" + }, + "before_scale_factor": { + "type": "number", + "description": "The scale factor that applies before the reference epoch" + }, + "initial_scale_factor": { + "type": "number", + "description": "The initial scale factor" + }, + "final_scale_factor": { + "type": "number", + "description": "The scale factor the exponential function approaches" + } + }, + "required": [ + "reference_epoch", + "relaxation_constant", + "before_scale_factor", + "initial_scale_factor", + "final_scale_factor" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad.lst b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad.lst new file mode 100644 index 00000000..cc427722 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad.lst @@ -0,0 +1,142 @@ + Listing of State Plane North American Datum Zones + + NGS zone number + State and zone 1927 1983 + +Alabama east .................. 101 101 +Alabama west .................. 102 102 +Alaska zone no. 1 ............. 5001 5001 +Alaska zone no. 2 ............. 5002 5002 +Alaska zone no. 3 ............. 5003 5003 +Alaska zone no. 4 ............. 5004 5004 +Alaska zone no. 5 ............. 5005 5005 +Alaska zone no. 6 ............. 5006 5006 +Alaska zone no. 7 ............. 5007 5007 +Alaska zone no. 8 ............. 5008 5008 +Alaska zone no. 9 ............. 5009 5009 +Alaska zone no. 10 ............ 5010 5010 +American Samoa ................ 5300 +Arizona central ............... 202 202 +Arizona east .................. 201 201 +Arizona west .................. 203 203 +Arkansas north ................ 301 301 +Arkansas south ................ 302 302 +California I .................. 401 401 +California II ................. 402 402 +California III ................ 403 403 +California IV ................. 404 404 +California V .................. 405 405 +California VI ................. 406 406 +California VII ................ 407 +Colorado central .............. 502 502 +Colorado north ................ 501 501 +Colorado south ................ 503 503 +Connecticut ................... 600 600 +Delaware ...................... 700 700 +Florida east .................. 901 901 +Florida north ................. 903 903 +Florida west .................. 902 902 +Georgia east .................. 1001 1001 +Georgia west .................. 1002 1002 +Guam Island ................... 5400 +Hawaii 1 ...................... 5101 5101 +Hawaii 2 ...................... 5102 5102 +Hawaii 3 ...................... 5103 5103 +Hawaii 4 ...................... 5104 5104 +Hawaii 5 ...................... 5105 5105 +Idaho central ................. 1102 1102 +Idaho east .................... 1101 1101 +Idaho west .................... 1103 1103 +Illinois east ................. 1201 1201 +Illinois west ................. 1202 1202 +Indiana east .................. 1301 1301 +Indiana west .................. 1302 1302 +Iowa north .................... 1401 1401 +Iowa south .................... 1402 1402 +Kansas north .................. 1501 1501 +Kansas south .................. 1502 1502 +Kentucky north ................ 1601 1601 +Kentucky south ................ 1602 1602 +Louisiana north ............... 1701 1701 +Louisiana offshore ............ 1703 1703 +Louisiana south ............... 1702 1702 +Maine east .................... 1801 1801 +Maine west .................... 1802 1802 +Maryland ...................... 1900 1900 +Massachusetts island .......... 2002 2002 +Massachusetts mainland ........ 2001 2001 +Michigan central/l ............ 2112 2112 current +Michigan central/m ............ 2102 old +Michigan east ................. 2101 old +Michigan north ................ 2111 2111 current +Michigan south ................ 2113 2113 current +Michigan west ................. 2103 old +Minnesota central ............. 2202 2202 +Minnesota north ............... 2201 2201 +Minnesota south ............... 2203 2203 +Mississippi east .............. 2301 2301 +Mississippi west .............. 2302 2302 +Missouri central .............. 2402 2402 +Missouri east ................. 2401 2401 +Missouri west ................. 2403 2403 +Montana ....................... 2500 +Montana central ............... 2502 +Montana north ................. 2501 +Montana south ................. 2503 +Nebraska ...................... 2600 +Nebraska north ................ 2601 +Nebraska south ................ 2602 +Nevada central ................ 2702 2702 +Nevada east ................... 2701 2701 +Nevada west ................... 2703 2703 +New hampshire ................. 2800 2800 +New jersey .................... 2900 2900 +New mexico central ............ 3002 3002 +New mexico east ............... 3001 3001 +New mexico west ............... 3003 3003 +New york central .............. 3102 3102 +New york east ................. 3101 3101 +New york long island .......... 3104 3104 +New york west ................. 3103 3103 +North carolina ................ 3200 3200 +North dakota north ............ 3301 3301 +North dakota south ............ 3302 3302 +Ohio north .................... 3401 3401 +Ohio south .................... 3402 3402 +Oklahoma north ................ 3501 3501 +Oklahoma south ................ 3502 3502 +Oregon north .................. 3601 3601 +Oregon south .................. 3602 3602 +Pennsylvania north ............ 3701 3701 +Pennsylvania south ............ 3702 3702 +Puerto Rico, Virgin Islands ... 5201 5200 +Rhode Island .................. 3800 3800 +South Carolina ................ 3900 +South Carolina north .......... 3901 +South Carolina south .......... 3902 +South Dakota north ............ 4001 4001 +South Dakota south ............ 4002 4002 +Tennessee ..................... 4100 4100 +Texas central ................. 4203 4203 +Texas north ................... 4201 4201 +Texas north central ........... 4202 4202 +Texas south ................... 4205 4205 +Texas south central ........... 4204 4204 +Utah central .................. 4302 4302 +Utah north .................... 4301 4301 +Utah south .................... 4303 4303 +Vermont ....................... 4400 4400 +Virgin Islands, St. Croix ..... 5202 +Virginia north ................ 4501 4501 +Virginia south ................ 4502 4502 +Washington north .............. 4601 4601 +Washington south .............. 4602 4602 +West Virginia north ........... 4701 4701 +West Virginia south ........... 4702 4702 +Wisconsin central ............. 4802 4802 +Wisconsin north ............... 4801 4801 +Wisconsin south ............... 4803 4803 +Wyoming east .................. 4901 4901 +Wyoming east central .......... 4902 4902 +Wyoming west .................. 4904 4904 +Wyoming west central .......... 4903 4903 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad27 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad27 new file mode 100644 index 00000000..c5e43962 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad27 @@ -0,0 +1,810 @@ +# SCCSID @(#)nad27 4.1 92/12/20 GIE +# proj +init files for: +# +# State Plane Coordinate Systems, +# North American Datum 1927 + + +lastupdate=1992-12-20 +# 101: alabama east: nad27 +<101> proj=tmerc datum=NAD27 +lon_0=-85d50 lat_0=30d30 k=.99996 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 102: alabama west: nad27 +<102> proj=tmerc datum=NAD27 +lon_0=-87d30 lat_0=30 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5010: alaska zone no. 10: nad27 +<5010> proj=lcc datum=NAD27 +lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 +x_0=914401.8288036576 y_0=0 +no_defs <> + +# 5300: american samoa: nad27 +<5300> proj=lcc datum=NAD27 +lon_0=-170 lat_1=-14d16 lat_2=-14d16 lat_0=-14d16 +x_0=152400.3048006096 y_0=95169.31165862332 +no_defs <> + +# 201: arizona east: nad27 +<201> proj=tmerc datum=NAD27 +lon_0=-110d10 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 202: arizona central: nad27 +<202> proj=tmerc datum=NAD27 +lon_0=-111d55 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 203: arizona west: nad27 +<203> proj=tmerc datum=NAD27 +lon_0=-113d45 lat_0=31 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 301: arkansas north: nad27 +<301> proj=lcc datum=NAD27 +lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 302: arkansas south: nad27 +<302> proj=lcc datum=NAD27 +lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 401: california i: nad27 +<401> proj=lcc datum=NAD27 +lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 402: california ii: nad27 +<402> proj=lcc datum=NAD27 +lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 403: california iii: nad27 +<403> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 404: california iv: nad27 +<404> proj=lcc datum=NAD27 +lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 405: california v: nad27 +<405> proj=lcc datum=NAD27 +lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 406: california vi: nad27 +<406> proj=lcc datum=NAD27 +lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 407: california vii: nad27 +<407> proj=lcc datum=NAD27 +lon_0=-118d20 lat_1=34d25 lat_2=33d52 lat_0=34d8 +x_0=1276106.450596901 y_0=1268253.006858014 +no_defs <> + +# 501: colorado north: nad27 +<501> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 502: colorado central: nad27 +<502> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 503: colorado south: nad27 +<503> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 600: connecticut ---: nad27 +<600> proj=lcc datum=NAD27 +lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 700: delaware ---: nad27 +<700> proj=tmerc datum=NAD27 +lon_0=-75d25 lat_0=38 k=.999995 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 901: florida east: nad27 +<901> proj=tmerc datum=NAD27 +lon_0=-81 lat_0=24d20 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 902: florida west: nad27 +<902> proj=tmerc datum=NAD27 +lon_0=-82 lat_0=24d20 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 903: florida north: nad27 +<903> proj=lcc datum=NAD27 +lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1001: georgia east: nad27 +<1001> proj=tmerc datum=NAD27 +lon_0=-82d10 lat_0=30 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1002: georgia west: nad27 +<1002> proj=tmerc datum=NAD27 +lon_0=-84d10 lat_0=30 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5101: hawaii 1: nad27 +<5101> proj=tmerc datum=NAD27 +lon_0=-155d30 lat_0=18d50 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5102: hawaii 2: nad27 +<5102> proj=tmerc datum=NAD27 +lon_0=-156d40 lat_0=20d20 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5103: hawaii 3: nad27 +<5103> proj=tmerc datum=NAD27 +lon_0=-158 lat_0=21d10 k=.99999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5104: hawaii 4: nad27 +<5104> proj=tmerc datum=NAD27 +lon_0=-159d30 lat_0=21d50 k=.99999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5105: hawaii 5: nad27 +<5105> proj=tmerc datum=NAD27 +lon_0=-160d10 lat_0=21d40 k=1 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1101: idaho east: nad27 +<1101> proj=tmerc datum=NAD27 +lon_0=-112d10 lat_0=41d40 k=.9999473684210526 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1102: idaho central: nad27 +<1102> proj=tmerc datum=NAD27 +lon_0=-114 lat_0=41d40 k=.9999473684210526 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1103: idaho west: nad27 +<1103> proj=tmerc datum=NAD27 +lon_0=-115d45 lat_0=41d40 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1201: illinois east: nad27 +<1201> proj=tmerc datum=NAD27 +lon_0=-88d20 lat_0=36d40 k=.999975 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1202: illinois west: nad27 +<1202> proj=tmerc datum=NAD27 +lon_0=-90d10 lat_0=36d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1301: indiana east: nad27 +<1301> proj=tmerc datum=NAD27 +lon_0=-85d40 lat_0=37d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1302: indiana west: nad27 +<1302> proj=tmerc datum=NAD27 +lon_0=-87d5 lat_0=37d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1401: iowa north: nad27 +<1401> proj=lcc datum=NAD27 +lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1402: iowa south: nad27 +<1402> proj=lcc datum=NAD27 +lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1501: kansas north: nad27 +<1501> proj=lcc datum=NAD27 +lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1502: kansas south: nad27 +<1502> proj=lcc datum=NAD27 +lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1601: kentucky north: nad27 +<1601> proj=lcc datum=NAD27 +lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1602: kentucky south: nad27 +<1602> proj=lcc datum=NAD27 +lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1701: louisiana north: nad27 +<1701> proj=lcc datum=NAD27 +lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1702: louisiana south: nad27 +<1702> proj=lcc datum=NAD27 +lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1703: louisiana offshore: nad27 +<1703> proj=lcc datum=NAD27 +lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1801: maine east: nad27 +<1801> proj=tmerc datum=NAD27 +lon_0=-68d30 lat_0=43d50 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1802: maine west: nad27 +<1802> proj=tmerc datum=NAD27 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1900: maryland ---: nad27 +<1900> proj=lcc datum=NAD27 +lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d50 +x_0=243840.4876809754 y_0=0 +no_defs <> + +# 2001: massachusetts mainland: nad27 +<2001> proj=lcc datum=NAD27 +lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 2002: massachusetts island: nad27 +<2002> proj=lcc datum=NAD27 +lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 +x_0=60960.12192024384 y_0=0 +no_defs <> + +# 2101: michigan east: nad27 +<2101> proj=tmerc datum=NAD27 +lon_0=-83d40 lat_0=41d30 k=.9999428571428571 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2102: michigan central/m: nad27 +<2102> proj=tmerc datum=NAD27 +lon_0=-85d45 lat_0=41d30 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2103: michigan west: nad27 +<2103> proj=tmerc datum=NAD27 +lon_0=-88d45 lat_0=41d30 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2111: michigan north: nad27 +<2111> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2112: michigan central/l: nad27 +<2112> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-84d20 lat_1=45d42 lat_2=44d11 lat_0=43d19 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2113: michigan south: nad27 +<2113> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-84d20 lat_1=43d40 lat_2=42d6 lat_0=41d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2201: minnesota north: nad27 +<2201> proj=lcc datum=NAD27 +lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2202: minnesota central: nad27 +<2202> proj=lcc datum=NAD27 +lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2203: minnesota south: nad27 +<2203> proj=lcc datum=NAD27 +lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2301: mississippi east: nad27 +<2301> proj=tmerc datum=NAD27 +lon_0=-88d50 lat_0=29d40 k=.99996 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2302: mississippi west: nad27 +<2302> proj=tmerc datum=NAD27 +lon_0=-90d20 lat_0=30d30 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2401: missouri east: nad27 +<2401> proj=tmerc datum=NAD27 +lon_0=-90d30 lat_0=35d50 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2402: missouri central: nad27 +<2402> proj=tmerc datum=NAD27 +lon_0=-92d30 lat_0=35d50 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2403: missouri west: nad27 +<2403> proj=tmerc datum=NAD27 +lon_0=-94d30 lat_0=36d10 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2501: montana north: nad27 +<2501> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=48d43 lat_2=47d51 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2502: montana central: nad27 +<2502> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=47d53 lat_2=46d27 lat_0=45d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2503: montana south: nad27 +<2503> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=46d24 lat_2=44d52 lat_0=44 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2601: nebraska north: nad27 +<2601> proj=lcc datum=NAD27 +lon_0=-100 lat_1=42d49 lat_2=41d51 lat_0=41d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2602: nebraska south: nad27 +<2602> proj=lcc datum=NAD27 +lon_0=-99d30 lat_1=41d43 lat_2=40d17 lat_0=39d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2701: nevada east: nad27 +<2701> proj=tmerc datum=NAD27 +lon_0=-115d35 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2702: nevada central: nad27 +<2702> proj=tmerc datum=NAD27 +lon_0=-116d40 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2703: nevada west: nad27 +<2703> proj=tmerc datum=NAD27 +lon_0=-118d35 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2800: new hampshire ---: nad27 +<2800> proj=tmerc datum=NAD27 +lon_0=-71d40 lat_0=42d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2900: new jersey ---: nad27 +<2900> proj=tmerc datum=NAD27 +lon_0=-74d40 lat_0=38d50 k=.999975 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3001: new mexico east: nad27 +<3001> proj=tmerc datum=NAD27 +lon_0=-104d20 lat_0=31 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3002: new mexico central: nad27 +<3002> proj=tmerc datum=NAD27 +lon_0=-106d15 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3003: new mexico west: nad27 +<3003> proj=tmerc datum=NAD27 +lon_0=-107d50 lat_0=31 k=.9999166666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3101: new york east: nad27 +<3101> proj=tmerc datum=NAD27 +lon_0=-74d20 lat_0=40 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3102: new york central: nad27 +<3102> proj=tmerc datum=NAD27 +lon_0=-76d35 lat_0=40 k=.9999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3103: new york west: nad27 +<3103> proj=tmerc datum=NAD27 +lon_0=-78d35 lat_0=40 k=.9999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3104: new york long island: nad27 +<3104> proj=lcc datum=NAD27 +lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d30 +x_0=609601.2192024384 y_0=30480.06096012192 +no_defs <> + +# 3200: north carolina ---: nad27 +<3200> proj=lcc datum=NAD27 +lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3301: north dakota north: nad27 +<3301> proj=lcc datum=NAD27 +lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3302: north dakota south: nad27 +<3302> proj=lcc datum=NAD27 +lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3401: ohio north: nad27 +<3401> proj=lcc datum=NAD27 +lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3402: ohio south: nad27 +<3402> proj=lcc datum=NAD27 +lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3501: oklahoma north: nad27 +<3501> proj=lcc datum=NAD27 +lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3502: oklahoma south: nad27 +<3502> proj=lcc datum=NAD27 +lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3601: oregon north: nad27 +<3601> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3602: oregon south: nad27 +<3602> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3701: pennsylvania north: nad27 +<3701> proj=lcc datum=NAD27 +lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3702: pennsylvania south: nad27 +<3702> proj=lcc datum=NAD27 +lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3800: rhode island ---: nad27 +<3800> proj=tmerc datum=NAD27 +lon_0=-71d30 lat_0=41d5 k=.99999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3901: south carolina north: nad27 +<3901> proj=lcc datum=NAD27 +lon_0=-81 lat_1=34d58 lat_2=33d46 lat_0=33 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3902: south carolina south: nad27 +<3902> proj=lcc datum=NAD27 +lon_0=-81 lat_1=33d40 lat_2=32d20 lat_0=31d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4001: south dakota north: nad27 +<4001> proj=lcc datum=NAD27 +lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4002: south dakota south: nad27 +<4002> proj=lcc datum=NAD27 +lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4100: tennessee ---: nad27 +<4100> proj=lcc datum=NAD27 +lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d40 +x_0=609601.2192024384 y_0=30480.06096012192 +no_defs <> + +# 4201: texas north: nad27 +<4201> proj=lcc datum=NAD27 +lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4202: texas north central: nad27 +<4202> proj=lcc datum=NAD27 +lon_0=-97d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4203: texas central: nad27 +<4203> proj=lcc datum=NAD27 +lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4204: texas south central: nad27 +<4204> proj=lcc datum=NAD27 +lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4205: texas south: nad27 +<4205> proj=lcc datum=NAD27 +lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4301: utah north: nad27 +<4301> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4302: utah central: nad27 +<4302> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4303: utah south: nad27 +<4303> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4400: vermont ---: nad27 +<4400> proj=tmerc datum=NAD27 +lon_0=-72d30 lat_0=42d30 k=.9999642857142857 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4501: virginia north: nad27 +<4501> proj=lcc datum=NAD27 +lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4502: virginia south: nad27 +<4502> proj=lcc datum=NAD27 +lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4601: washington north: nad27 +<4601> proj=lcc datum=NAD27 +lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4602: washington south: nad27 +<4602> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4701: west virginia north: nad27 +<4701> proj=lcc datum=NAD27 +lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4702: west virginia south: nad27 +<4702> proj=lcc datum=NAD27 +lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4801: wisconsin north: nad27 +<4801> proj=lcc datum=NAD27 +lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4802: wisconsin central: nad27 +<4802> proj=lcc datum=NAD27 +lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4803: wisconsin south: nad27 +<4803> proj=lcc datum=NAD27 +lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4901: wyoming east: nad27 +<4901> proj=tmerc datum=NAD27 +lon_0=-105d10 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4902: wyoming east central: nad27 +<4902> proj=tmerc datum=NAD27 +lon_0=-107d20 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4903: wyoming west central: nad27 +<4903> proj=tmerc datum=NAD27 +lon_0=-108d45 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4904: wyoming west: nad27 +<4904> proj=tmerc datum=NAD27 +lon_0=-110d5 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5001: alaska zone no. 1: nad27 +<5001> proj=omerc datum=NAD27 +k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 +x_0=818585.5672270928 y_0=575219.2451072642 +no_defs <> + +# 5002: alaska zone no. 2: nad27 +<5002> proj=tmerc datum=NAD27 +lon_0=-142 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5003: alaska zone no. 3: nad27 +<5003> proj=tmerc datum=NAD27 +lon_0=-146 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5004: alaska zone no. 4: nad27 +<5004> proj=tmerc datum=NAD27 +lon_0=-150 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5005: alaska zone no. 5: nad27 +<5005> proj=tmerc datum=NAD27 +lon_0=-154 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5006: alaska zone no. 6: nad27 +<5006> proj=tmerc datum=NAD27 +lon_0=-158 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5007: alaska zone no. 7: nad27 +<5007> proj=tmerc datum=NAD27 +lon_0=-162 lat_0=54 k=.9999 +x_0=213360.4267208534 y_0=0 +no_defs <> + +# 5008: alaska zone no. 8: nad27 +<5008> proj=tmerc datum=NAD27 +lon_0=-166 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5009: alaska zone no. 9: nad27 +<5009> proj=tmerc datum=NAD27 +lon_0=-170 lat_0=54 k=.9999 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 5201: puerto rico and virgin islands: nad27 +<5201> proj=lcc datum=NAD27 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5202: virgin islands st. croix: nad27 +<5202> proj=lcc datum=NAD27 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=152400.3048006096 y_0=30480.06096012192 +no_defs <> + +# 5400: guam island: nad27 +<5400> proj=poly datum=NAD27 +x_0=50000 y_0=50000 lon_0=144d44'55.50254 lat_0=13d28'20.87887 +no_defs <> + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad83 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad83 new file mode 100644 index 00000000..1b65f519 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/nad83 @@ -0,0 +1,745 @@ +# SCCSID @(#)nad83 4.1 92/12/20 GIE +# proj +init files for: +# +# State Plane Coordinate Systems, +# North American Datum 1983 + + +lastupdate=1992-12-20 +# 101: alabama east: nad83 +<101> proj=tmerc datum=NAD83 +lon_0=-85d50 lat_0=30d30 k=.99996 +x_0=200000 y_0=0 +no_defs <> + +# 102: alabama west: nad83 +<102> proj=tmerc datum=NAD83 +lon_0=-87d30 lat_0=30 k=.9999333333333333 +x_0=600000 y_0=0 +no_defs <> + +# 5010: alaska zone no. 10: nad83 +<5010> proj=lcc datum=NAD83 +lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 +x_0=1000000 y_0=0 +no_defs <> + +# 201: arizona east: nad83 +<201> proj=tmerc datum=NAD83 +lon_0=-110d10 lat_0=31 k=.9999 +x_0=213360 y_0=0 +no_defs <> + +# 202: arizona central: nad83 +<202> proj=tmerc datum=NAD83 +lon_0=-111d55 lat_0=31 k=.9999 +x_0=213360 y_0=0 +no_defs <> + +# 203: arizona west: nad83 +<203> proj=tmerc datum=NAD83 +lon_0=-113d45 lat_0=31 k=.9999333333333333 +x_0=213360 y_0=0 +no_defs <> + +# 301: arkansas north: nad83 +<301> proj=lcc datum=NAD83 +lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 +x_0=400000 y_0=0 +no_defs <> + +# 302: arkansas south: nad83 +<302> proj=lcc datum=NAD83 +lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 +x_0=400000 y_0=400000 +no_defs <> + +# 401: california i: nad83 +<401> proj=lcc datum=NAD83 +lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 +x_0=2000000 y_0=500000 +no_defs <> + +# 402: california ii: nad83 +<402> proj=lcc datum=NAD83 +lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 +x_0=2000000 y_0=500000 +no_defs <> + +# 403: california iii: nad83 +<403> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 +x_0=2000000 y_0=500000 +no_defs <> + +# 404: california iv: nad83 +<404> proj=lcc datum=NAD83 +lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 +x_0=2000000 y_0=500000 +no_defs <> + +# 405: california v: nad83 +<405> proj=lcc datum=NAD83 +lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 +x_0=2000000 y_0=500000 +no_defs <> + +# 406: california vi: nad83 +<406> proj=lcc datum=NAD83 +lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 +x_0=2000000 y_0=500000 +no_defs <> + +# 501: colorado north: nad83 +<501> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 502: colorado central: nad83 +<502> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 503: colorado south: nad83 +<503> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 600: connecticut ---: nad83 +<600> proj=lcc datum=NAD83 +lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 +x_0=304800.6096 y_0=152400.3048 +no_defs <> + +# 700: delaware ---: nad83 +<700> proj=tmerc datum=NAD83 +lon_0=-75d25 lat_0=38 k=.999995 +x_0=200000 y_0=0 +no_defs <> + +# 901: florida east: nad83 +<901> proj=tmerc datum=NAD83 +lon_0=-81 lat_0=24d20 k=.9999411764705882 +x_0=200000 y_0=0 +no_defs <> + +# 902: florida west: nad83 +<902> proj=tmerc datum=NAD83 +lon_0=-82 lat_0=24d20 k=.9999411764705882 +x_0=200000 y_0=0 +no_defs <> + +# 903: florida north: nad83 +<903> proj=lcc datum=NAD83 +lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 +x_0=600000 y_0=0 +no_defs <> + +# 1001: georgia east: nad83 +<1001> proj=tmerc datum=NAD83 +lon_0=-82d10 lat_0=30 k=.9999 +x_0=200000 y_0=0 +no_defs <> + +# 1002: georgia west: nad83 +<1002> proj=tmerc datum=NAD83 +lon_0=-84d10 lat_0=30 k=.9999 +x_0=700000 y_0=0 +no_defs <> + +# 5101: hawaii 1: nad83 +<5101> proj=tmerc datum=NAD83 +lon_0=-155d30 lat_0=18d50 k=.9999666666666667 +x_0=500000 y_0=0 +no_defs <> + +# 5102: hawaii 2: nad83 +<5102> proj=tmerc datum=NAD83 +lon_0=-156d40 lat_0=20d20 k=.9999666666666667 +x_0=500000 y_0=0 +no_defs <> + +# 5103: hawaii 3: nad83 +<5103> proj=tmerc datum=NAD83 +lon_0=-158 lat_0=21d10 k=.99999 +x_0=500000 y_0=0 +no_defs <> + +# 5104: hawaii 4: nad83 +<5104> proj=tmerc datum=NAD83 +lon_0=-159d30 lat_0=21d50 k=.99999 +x_0=500000 y_0=0 +no_defs <> + +# 5105: hawaii 5: nad83 +<5105> proj=tmerc datum=NAD83 +lon_0=-160d10 lat_0=21d40 k=1 +x_0=500000 y_0=0 +no_defs <> + +# 1101: idaho east: nad83 +<1101> proj=tmerc datum=NAD83 +lon_0=-112d10 lat_0=41d40 k=.9999473684210526 +x_0=200000 y_0=0 +no_defs <> + +# 1102: idaho central: nad83 +<1102> proj=tmerc datum=NAD83 +lon_0=-114 lat_0=41d40 k=.9999473684210526 +x_0=500000 y_0=0 +no_defs <> + +# 1103: idaho west: nad83 +<1103> proj=tmerc datum=NAD83 +lon_0=-115d45 lat_0=41d40 k=.9999333333333333 +x_0=800000 y_0=0 +no_defs <> + +# 1201: illinois east: nad83 +<1201> proj=tmerc datum=NAD83 +lon_0=-88d20 lat_0=36d40 k=.999975 +x_0=300000 y_0=0 +no_defs <> + +# 1202: illinois west: nad83 +<1202> proj=tmerc datum=NAD83 +lon_0=-90d10 lat_0=36d40 k=.9999411764705882 +x_0=700000 y_0=0 +no_defs <> + +# 1301: indiana east: nad83 +<1301> proj=tmerc datum=NAD83 +lon_0=-85d40 lat_0=37d30 k=.9999666666666667 +x_0=100000 y_0=250000 +no_defs <> + +# 1302: indiana west: nad83 +<1302> proj=tmerc datum=NAD83 +lon_0=-87d5 lat_0=37d30 k=.9999666666666667 +x_0=900000 y_0=250000 +no_defs <> + +# 1401: iowa north: nad83 +<1401> proj=lcc datum=NAD83 +lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 +x_0=1500000 y_0=1000000 +no_defs <> + +# 1402: iowa south: nad83 +<1402> proj=lcc datum=NAD83 +lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 +x_0=500000 y_0=0 +no_defs <> + +# 1501: kansas north: nad83 +<1501> proj=lcc datum=NAD83 +lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 +x_0=400000 y_0=0 +no_defs <> + +# 1502: kansas south: nad83 +<1502> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 +x_0=400000 y_0=400000 +no_defs <> + +# 1601: kentucky north: nad83 +<1601> proj=lcc datum=NAD83 +lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 +x_0=500000 y_0=0 +no_defs <> + +# 1602: kentucky south: nad83 +<1602> proj=lcc datum=NAD83 +lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 +x_0=500000 y_0=500000 +no_defs <> + +# 1701: louisiana north: nad83 +<1701> proj=lcc datum=NAD83 +lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1702: louisiana south: nad83 +<1702> proj=lcc datum=NAD83 +lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1703: louisiana offshore: nad83 +<1703> proj=lcc datum=NAD83 +lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1801: maine east: nad83 +<1801> proj=tmerc datum=NAD83 +lon_0=-68d30 lat_0=43d40 k=.9999 +x_0=300000 y_0=0 +no_defs <> + +# 1802: maine west: nad83 +<1802> proj=tmerc datum=NAD83 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 +x_0=900000 y_0=0 +no_defs <> + +# 1900: maryland ---: nad83 +<1900> proj=lcc datum=NAD83 +lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d40 +x_0=400000 y_0=0 +no_defs <> + +# 2001: massachusetts mainland: nad83 +<2001> proj=lcc datum=NAD83 +lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 +x_0=200000 y_0=750000 +no_defs <> + +# 2002: massachusetts island: nad83 +<2002> proj=lcc datum=NAD83 +lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 +x_0=500000 y_0=0 +no_defs <> + +# 2111: michigan north: nad83 +<2111> proj=lcc datum=NAD83 +lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 +x_0=8000000 y_0=0 +no_defs <> + +# 2112: michigan central/l: nad83 +<2112> proj=lcc datum=NAD83 +lon_0=-84d22 lat_1=45d42 lat_2=44d11 lat_0=43d19 +x_0=6000000 y_0=0 +no_defs <> + +# 2113: michigan south: nad83 +<2113> proj=lcc datum=NAD83 +lon_0=-84d22 lat_1=43d40 lat_2=42d6 lat_0=41d30 +x_0=4000000 y_0=0 +no_defs <> + +# 2201: minnesota north: nad83 +<2201> proj=lcc datum=NAD83 +lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 +x_0=800000 y_0=100000 +no_defs <> + +# 2202: minnesota central: nad83 +<2202> proj=lcc datum=NAD83 +lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 +x_0=800000 y_0=100000 +no_defs <> + +# 2203: minnesota south: nad83 +<2203> proj=lcc datum=NAD83 +lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 +x_0=800000 y_0=100000 +no_defs <> + +# 2301: mississippi east: nad83 +<2301> proj=tmerc datum=NAD83 +lon_0=-88d50 lat_0=29d30 k=.99995 +x_0=300000 y_0=0 +no_defs <> + +# 2302: mississippi west: nad83 +<2302> proj=tmerc datum=NAD83 +lon_0=-90d20 lat_0=29d30 k=.99995 +x_0=700000 y_0=0 +no_defs <> + +# 2401: missouri east: nad83 +<2401> proj=tmerc datum=NAD83 +lon_0=-90d30 lat_0=35d50 k=.9999333333333333 +x_0=250000 y_0=0 +no_defs <> + +# 2402: missouri central: nad83 +<2402> proj=tmerc datum=NAD83 +lon_0=-92d30 lat_0=35d50 k=.9999333333333333 +x_0=500000 y_0=0 +no_defs <> + +# 2403: missouri west: nad83 +<2403> proj=tmerc datum=NAD83 +lon_0=-94d30 lat_0=36d10 k=.9999411764705882 +x_0=850000 y_0=0 +no_defs <> + +# 2500: montana: nad83 +<2500> proj=lcc datum=NAD83 +lon_0=-109d30 lat_1=49 lat_2=45 lat_0=44d15 +x_0=600000 y_0=0 +no_defs <> + +# 2600: nebraska: nad83 +<2600> proj=lcc datum=NAD83 +lon_0=-100 lat_1=43 lat_2=40 lat_0=39d50 +x_0=500000 y_0=0 +no_defs <> + +# 2701: nevada east: nad83 +<2701> proj=tmerc datum=NAD83 +lon_0=-115d35 lat_0=34d45 k=.9999 +x_0=200000 y_0=8000000 +no_defs <> + +# 2702: nevada central: nad83 +<2702> proj=tmerc datum=NAD83 +lon_0=-116d40 lat_0=34d45 k=.9999 +x_0=500000 y_0=6000000 +no_defs <> + +# 2703: nevada west: nad83 +<2703> proj=tmerc datum=NAD83 +lon_0=-118d35 lat_0=34d45 k=.9999 +x_0=800000 y_0=4000000 +no_defs <> + +# 2800: new hampshire ---: nad83 +<2800> proj=tmerc datum=NAD83 +lon_0=-71d40 lat_0=42d30 k=.9999666666666667 +x_0=300000 y_0=0 +no_defs <> + +# 2900: new jersey ---: nad83 +<2900> proj=tmerc datum=NAD83 +lon_0=-74d30 lat_0=38d50 k=.9999 +x_0=150000 y_0=0 +no_defs <> + +# 3001: new mexico east: nad83 +<3001> proj=tmerc datum=NAD83 +lon_0=-104d20 lat_0=31 k=.9999090909090909 +x_0=165000 y_0=0 +no_defs <> + +# 3002: new mexico central: nad83 +<3002> proj=tmerc datum=NAD83 +lon_0=-106d15 lat_0=31 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 3003: new mexico west: nad83 +<3003> proj=tmerc datum=NAD83 +lon_0=-107d50 lat_0=31 k=.9999166666666667 +x_0=830000 y_0=0 +no_defs <> + +# 3101: new york east: nad83 +<3101> proj=tmerc datum=NAD83 +lon_0=-74d30 lat_0=38d50 k=.9999 +x_0=150000 y_0=0 +no_defs <> + +# 3102: new york central: nad83 +<3102> proj=tmerc datum=NAD83 +lon_0=-76d35 lat_0=40 k=.9999375 +x_0=250000 y_0=0 +no_defs <> + +# 3103: new york west: nad83 +<3103> proj=tmerc datum=NAD83 +lon_0=-78d35 lat_0=40 k=.9999375 +x_0=350000 y_0=0 +no_defs <> + +# 3104: new york long island: nad83 +<3104> proj=lcc datum=NAD83 +lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d10 +x_0=300000 y_0=0 +no_defs <> + +# 3200: north carolina ---: nad83 +<3200> proj=lcc datum=NAD83 +lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 +x_0=609601.22 y_0=0 +no_defs <> + +# 3301: north dakota north: nad83 +<3301> proj=lcc datum=NAD83 +lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 +x_0=600000 y_0=0 +no_defs <> + +# 3302: north dakota south: nad83 +<3302> proj=lcc datum=NAD83 +lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 +x_0=600000 y_0=0 +no_defs <> + +# 3401: ohio north: nad83 +<3401> proj=lcc datum=NAD83 +lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 +x_0=600000 y_0=0 +no_defs <> + +# 3402: ohio south: nad83 +<3402> proj=lcc datum=NAD83 +lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 +x_0=600000 y_0=0 +no_defs <> + +# 3501: oklahoma north: nad83 +<3501> proj=lcc datum=NAD83 +lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 +x_0=600000 y_0=0 +no_defs <> + +# 3502: oklahoma south: nad83 +<3502> proj=lcc datum=NAD83 +lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 +x_0=600000 y_0=0 +no_defs <> + +# 3601: oregon north: nad83 +<3601> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 +x_0=2500000 y_0=0 +no_defs <> + +# 3602: oregon south: nad83 +<3602> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 +x_0=1500000 y_0=0 +no_defs <> + +# 3701: pennsylvania north: nad83 +<3701> proj=lcc datum=NAD83 +lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 +x_0=600000 y_0=0 +no_defs <> + +# 3702: pennsylvania south: nad83 +<3702> proj=lcc datum=NAD83 +lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 +x_0=600000 y_0=0 +no_defs <> + +# 3800: rhode island ---: nad83 +<3800> proj=tmerc datum=NAD83 +lon_0=-71d30 lat_0=41d5 k=.99999375 +x_0=100000 y_0=0 +no_defs <> + +# 3900: south carolina: nad83 +<3900> proj=lcc datum=NAD83 +lon_0=-81 lat_1=34d50 lat_2=32d30 lat_0=31d50 +x_0=609600 y_0=0 +no_defs <> + +# 4001: south dakota north: nad83 +<4001> proj=lcc datum=NAD83 +lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 +x_0=600000 y_0=0 +no_defs <> + +# 4002: south dakota south: nad83 +<4002> proj=lcc datum=NAD83 +lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 +x_0=600000 y_0=0 +no_defs <> + +# 4100: tennessee ---: nad83 +<4100> proj=lcc datum=NAD83 +lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d20 +x_0=600000 y_0=0 +no_defs <> + +# 4201: texas north: nad83 +<4201> proj=lcc datum=NAD83 +lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 +x_0=200000 y_0=1000000 +no_defs <> + +# 4202: texas north central: nad83 +<4202> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 +x_0=600000 y_0=2000000 +no_defs <> + +# 4203: texas central: nad83 +<4203> proj=lcc datum=NAD83 +lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 +x_0=700000 y_0=3000000 +no_defs <> + +# 4204: texas south central: nad83 +<4204> proj=lcc datum=NAD83 +lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 +x_0=600000 y_0=4000000 +no_defs <> + +# 4205: texas south: nad83 +<4205> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=300000 y_0=5000000 +no_defs <> + +# 4301: utah north: nad83 +<4301> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 +x_0=500000 y_0=1000000 +no_defs <> + +# 4302: utah central: nad83 +<4302> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 +x_0=500000 y_0=2000000 +no_defs <> + +# 4303: utah south: nad83 +<4303> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 +x_0=500000 y_0=3000000 +no_defs <> + +# 4400: vermont ---: nad83 +<4400> proj=tmerc datum=NAD83 +lon_0=-72d30 lat_0=42d30 k=.9999642857142857 +x_0=500000 y_0=0 +no_defs <> + +# 4501: virginia north: nad83 +<4501> proj=lcc datum=NAD83 +lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 +x_0=3500000 y_0=2000000 +no_defs <> + +# 4502: virginia south: nad83 +<4502> proj=lcc datum=NAD83 +lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 +x_0=3500000 y_0=1000000 +no_defs <> + +# 4601: washington north: nad83 +<4601> proj=lcc datum=NAD83 +lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 +x_0=500000 y_0=0 +no_defs <> + +# 4602: washington south: nad83 +<4602> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 +x_0=500000 y_0=0 +no_defs <> + +# 4701: west virginia north: nad83 +<4701> proj=lcc datum=NAD83 +lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 +x_0=600000 y_0=0 +no_defs <> + +# 4702: west virginia south: nad83 +<4702> proj=lcc datum=NAD83 +lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 +x_0=600000 y_0=0 +no_defs <> + +# 4801: wisconsin north: nad83 +<4801> proj=lcc datum=NAD83 +lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 +x_0=600000 y_0=0 +no_defs <> + +# 4802: wisconsin central: nad83 +<4802> proj=lcc datum=NAD83 +lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 +x_0=600000 y_0=0 +no_defs <> + +# 4803: wisconsin south: nad83 +<4803> proj=lcc datum=NAD83 +lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 +x_0=600000 y_0=0 +no_defs <> + +# 4901: wyoming east: nad83 +<4901> proj=tmerc datum=NAD83 +lon_0=-105d10 lat_0=40d30 k=.9999375 +x_0=200000 y_0=0 +no_defs <> + +# 4902: wyoming east central: nad83 +<4902> proj=tmerc datum=NAD83 +lon_0=-107d20 lat_0=40d30 k=.9999375 +x_0=400000 y_0=100000 +no_defs <> + +# 4903: wyoming west central: nad83 +<4903> proj=tmerc datum=NAD83 +lon_0=-108d45 lat_0=40d30 k=.9999375 +x_0=600000 y_0=0 +no_defs <> + +# 4904: wyoming west: nad83 +<4904> proj=tmerc datum=NAD83 +lon_0=-110d5 lat_0=40d30 k=.9999375 +x_0=800000 y_0=100000 +no_defs <> + +# 5001: alaska zone no. 1: nad83 +<5001> proj=omerc datum=NAD83 +k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 +x_0=818676.7344011233 y_0=575097.6888751927 +no_defs <> + +# 5002: alaska zone no. 2: nad83 +<5002> proj=tmerc datum=NAD83 +lon_0=-142 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5003: alaska zone no. 3: nad83 +<5003> proj=tmerc datum=NAD83 +lon_0=-146 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5004: alaska zone no. 4: nad83 +<5004> proj=tmerc datum=NAD83 +lon_0=-150 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5005: alaska zone no. 5: nad83 +<5005> proj=tmerc datum=NAD83 +lon_0=-154 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5006: alaska zone no. 6: nad83 +<5006> proj=tmerc datum=NAD83 +lon_0=-158 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5007: alaska zone no. 7: nad83 +<5007> proj=tmerc datum=NAD83 +lon_0=-162 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5008: alaska zone no. 8: nad83 +<5008> proj=tmerc datum=NAD83 +lon_0=-166 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5009: alaska zone no. 9: nad83 +<5009> proj=tmerc datum=NAD83 +lon_0=-170 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5200: puerto rico and virgin islands: nad83 +<5200> proj=lcc datum=NAD83 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=200000 y_0=200000 +no_defs <> + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/other.extra b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/other.extra new file mode 100644 index 00000000..4b5797e9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/other.extra @@ -0,0 +1,53 @@ +## NAD83 / BC Albers (this has been superseded but is kept for compatibility) +<42102> +proj=aea +ellps=GRS80 +lat_0=45 +lon_0=-126.0 +lat_1=50.0 +lat_2=58.5 +x_0=1000000.0 +y_0=0 +datum=NAD83 +units=m no_defs <> + + +# +# OGC-defined extended codes (41000--41999) +# see http://www.digitalearth.gov/wmt/auto.html +# +# WGS84 / Simple Mercator +<41001> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# +# CubeWerx-defined extended codes (42100--42199) +# +# WGS 84 / LCC Canada +<42101> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=0 +lon_0=-95 +x_0=0 +y_0=-8000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +#EPSG:42102,"PROJCS[\"NAD83 / BC Albers\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS_1980\",6378137,298.257222101]],PRIMEM[\"Greenwich\",0],UNIT[\"Decimal_Degree\",0.0174532925199433]],PROJECTION[\"Albers_conic_equal_area\"],PARAMETER[\"central_meridian\",-126.0],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"standard_parallel_1\",50.0],PARAMETER[\"standard_parallel_2\",58.5],PARAMETER[\"false_easting\",1000000.0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]" +# WGS 84 / LCC USA +<42103> +proj=lcc +lat_1=33 +lat_2=45 +lat_0=0 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS72 +datum=WGS84 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 8 Québec +<42104> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# WGS84 / Merc NorthAm +<42105> +proj=merc +lat_ts=0 +lon_0=-96 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS84 / Lambert Azim Mozambique +<42106> +proj=laea +lat_0=5 +lon_0=20 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +datum=WGS84 +units=m +no_defs no_defs <> +# +# CubeWerx-customer definitions (42300--42399) +# +# NAD27 / Polar Stereographic / CM=-98 +<42301> +proj=stere +lat_0=90 +lon_0=-98 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# JapanOrtho.09 09 +<42302> +proj=tmerc +lat_0=36 +lon_0=139.833333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# NAD83 / Albers NorthAm +<42303> +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / NRCan LCC Canada +<42304> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# France_II +<42305> +proj=lcc +lat_1=45.898918964419 +lat_2=47.696014502038 +lat_0=46.8 +lon_0=2.337229166666667 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.999904194 +pm=2.337229166666667 +units=m +no_defs no_defs <> +# NAD83/QC_LCC +<42306> +proj=lcc +lat_1=46 +lat_2=60 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Texas Central - feet +<42307> +proj=lcc +lat_1=31.8833333333333 +lat_2=30.1166666666667 +lat_0=29.6666666666667 +lon_0=-100.333333333333 +x_0=700000.0000000001 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California Albers +<42308> +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD 83 / LCC Canada AVHRR-2 +<42309> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=0 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# WGS84+GRS80 / Mercator +<42310> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=GRS80 +datum=WGS84 +units=m +no_defs no_defs <> +# NAD83 / LCC Statcan +<42311> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666700000001 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# +# Funny epsgish code for google mercator - you should really use EPSG:3857 +# +<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs <> diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/proj.db b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/proj.db new file mode 100644 index 0000000000000000000000000000000000000000..e886db9b9c7ccdb4f0af11aea366d7a4e66cfd9c GIT binary patch literal 9359360 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%0DfnB!~(pnq=fd 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

F9!TG*?9DduOzBF>!ya;>M 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

U<6*pVN>>1{2I-0gFGrWdYgXwB z;-z|(3AA`web1L;!s|nihVhzFx`KE$MprC&fiBv0akz{qf!gm`r7M8fPO4wZ0!GzH zU0_cxlZ5g0m=Jsahmbu%HvHv=#QMk9pSSK!E&teZsQEL^JJ!B`?dmnz z)t_H|^QuQyZCqJg@!X28rpK4>|7#pzsei*5zON33lzz$k{0X*h#ZayigZXky!O)8@ zQ@Wh&{esdJkUhz@gFnEeSh^^t#Q`P09FyE#c(Kyu^xV%YT>+VEkgix{&e7%Ydau$I zz)R|p5MBh4;w4v!k9;{Mye_yfjMvX8T>-orq$?J@99<5t_b6Qfyxe{u%ncSV-!34! z91~vWT@c3W-AY#guLkLg1usXJ!|P|2t{`5d9w`391gd;VH4UB!F#X4c*T(b0c>Rph z6~wDCx?;f#be#`d?O?gv;q@-1D}a}(RYpkR;){$HQ5}j|<6hNr~l43#W1(k3&?%t*(1yG{# z#xN0WDok>baH6X*;q+Zgl^b_&RjL9&HAGb`P=P8FdvaJkq*Mj5vMw8eX2EjKBwdaP zt#5o+>2hd2sB{I-lel@w#8>3gFcs zU9sTh=yG_SQn~_ok$kAEh=3Byc(n{7Q7r?4zG&R6~s&R zDHCY%;;V!gUycbcRPqYNsLM)M5U>D44fw9H#Plz|O#J`3rY%#U z2*69$-P7`SExpaBn=e@VlWU$|Gr0N_t1npfrj>uUvTMa-$N-pIs{c;y!!e}aP#gmM zF$Z^%an8vmDmmslt0w*-CO`h3`;<1vqfaPp0Um{RO=+eI1&&On3YTPvNv`wvC~a<@ z`MA;+#7$^m+{oawxP@tpMYbJn4!0+jwjgf7Em?}2TxXs#nK9v(&4+ROb)_wcTjR9F zf}5kw;dWYS3*knt6+5a-rR6D~mnOML{6kE*9m|Gs`RN1u-L~L88VaTFCe+ zLB^M3LhQ&Rjf6~L=Ox?;i0(dF=Z zROt%hrRtRlw0QAV!iz7*gjeri7_W~iT|vAWqbnA?99<5tN0hDrUVQKa$rmLHS?fox zGG25!CcHX&!+3o}=?dW0AYHNG<>+#FeOT!V;-z|(2~_!_Og=GW`EpEn-P{qz>z9?T zAYP5p6$@UDE{E5Ll&%0?loQJOo*`1auwI?^+Ba8fLDWb#e$ck%i;9_ zr7M6J?}n%G$OI~0a+UDn%Q4}#$7Nb=eNe|9@4};ik=hu=%o0Z{PThjl&zB+;IN-6YKtR-AyeIH~+Bt=-Q{(UcBak z)z7cqzv?Y3Ke6H;R@~9_mraMal+WS))A2M1%P)8PtN(}gH^2uB^FcKS1_yI_I{sz0 z)g94iGhrLweBR&m3EtT=T7Jz6yTALh`u+gkQegobjcDK|li>=pwm^fniQMy!R_(K> z05@LDjC*a5K68eMpt^^nl-k

I=V=kH1?vMc|+ZdX(> zm`*jo7ppYnmUtp%kzIjT9;)~7-?S$|38TG;B4M;U$H|dgXF1{@;*q1%O;2Db8tR-r z`U9mdC^C&x7l&Y^{M5O9sK2k&1+fbp39IviIVzU1;||1y9nOdiWA}SXT@bs*sf!0Y zA9W79XOy}Sc6J0Yoen!UPWXqou={Y+V`1z*qtu14YnZxtu=7#puzOmm3t~r=3S`XE zzI!)jx@{jNR`lbwTVJr!F4seAGGYs!Cl5JJNDwl4*zpf>VfVJCcZIS0uS#7IyT+-D2Rk2i z4!hr0>O$CAZOn8!?A%pFaY5)BCoUG~KpZ^f*Vgrxji2l!@{g79 z0IJY_;wR%nq?Y-JStbFf^uj9PG(Yn3(ar&V`hi{b@FL&PImle_|S&-Z(+5F*m zsqBa+fie4#xK&JER42|Nm>}1-BcCZ|3R5U7o-NIc!Q0*1(Yb9`>mY?fxZXx8oktTC zSw@xdt%IW}`VnUWoG2A{wH_`_=Vsel56)(aC|jN^qAWQY9Za@Um6i6aSD420+WWS( zrBKUoD*;o+2-b3eUs7NKvKA~Ch-bMNfCYwY^2y>eV-(YHM(w}~oo8NJd>K@YNooB% zr8LMwA%bix;ZuW@#xb^WlyL(r9Bqx@U*l|}N{ZVo-;8qmTSX(pH=ATAxJ0ADjjS4u zE4l9s3Kv!=J-W2`8s}#JjglH--112M(J{_9_A)htZwbt!T8<&^{k1|8yov(nz>Rt>PMWR64Oh+^gK>xc8ir8sy$GN&S&rl3{!n?we&)|h9e@5xNe%L6nWVi?m8FImylv}JU2-=+_5{NRS~ZD?8Vt-Gz|mz(cg`^cIjs~=r;*UAUc;Qyun z7T17L$M4_Zf(74IMg@jjZOyDmQIsYmiIg;jc`%lt)}F_Sgl(-I-jp}v74RYNoy=t0 zocB4Hp2x+~Y+*h#K8*-L2Lc5B-dNt7$mM;Zg2CJguQfTID^iGIFo{M7O6jrmIG&Wt z<|y*e*4mYu$;={wVHQW8&6UQo8T{IlPp4<;c-Xeq!8B!O(B}eWJ7luiGzc0lrSp*A zk<2(wTT7Ml(*+I+bb7d;MPJdZ#w=`WJ(QkJpDd-bURw$!!VVD|D%;(7`Hr$7pc5$F zk@d5H9i^V739*6O#G?<8PcfNBmuHC;%7Lj&HtmP6d%Q%T1Cn&U)OPyGrz+jluTwtp z`e*G|P`sAWuUN#(%9V{~*x=F-CA4I6QG(LRGHLtklaXEz;jA{C^@LM0kqOf}j3CJj z{x&EW61=Jr4^%{>(+iK6(@s3TtuO|}gR+N3JQ&X?@sK7g9@Hi#@vu+`>mPrz(#x!e zv!+wPx0L1p>z6}wysS6GL#gp|DG|v;k^O2$V~%05@D^~MnJMp#k?!p^E_3VIuIPySJR8)AyuC8pm|!-}&DUzAdPl@(x1sqz-bmgkkw5L=c$sBAh(?gGEv6y#j`#3coTWvd!ShumG{~!E z5*jbB+OuQuTWFq(n`tOV7-HJrD;7bf$;vbN|AI>70Fy?{G;S3W(;j*U`TyrN-PyG1 za~q%E@Vo0jx9*?U-Q4o_=D%&ea&2nOBdfo^`j%Di!;b%5D^{V=lK++8KvSTv(tk^H zJs9lhMaD=S$>k=D0kw$3=YMF zcg}yecVr3$uhiDMZyX*qx$67!`~kD5rp~tx=Wq(k9BxA_p^%|j!Yd)M0QMf9Gmy*Y z#>s(C!Y`ln5MM}Ukays<_NS4A-_|;s##!gsn2|&nA`hP(C1yg*U8A@KWW2VNOXS2Z zO_;d^a!kxcU6<=w0&|YJtCh$AbC*M8Jj`|R73E$Egon^wrGy92tu6c#iLNvubYreg z6GC^T5*a{uIYho_=%Rehbxs)fU|5GfHm&+}c{Vk)j(ad>cpLTfuGR?Ov@t>0Evi zQBfKo2ymLKNqj{_b;`yyPJiLK5G$I0s9g)NVmV!ln-!opDCf=puJi_3p>vxM9wq0r z^HAiR+r%vAIOirP=gt47#0J4#2C;F23wp2NahY*){=b#p0JyZrl?`)&FbZ60LK4Vr z;sv+$V7`P%+d|uEoQ`ulQC-0TqsAp)P^tqcFNf+_P`2@PjY(mJ<5;dVJ0Ygc-h6r% z!xEMce)q3Wq|mz@_wFvolYiCT1$aWcD48eH%_yEo6XFTCiHRrvg@jx-bAqfd?eShO zJ58NbokK_GWlvzyp|Fi2=^QUzz*35`^OM*yq^!1MP5toy+NPJnZ!HV~7PJ z?5EwdaVI}xS^es|)fIMesxG%701GSt$ztm;*{W%N!a(LYR+T6zHVNw%YY*wR)HBbP zkFi_~IJx+~!W5JXokIn$NV%{RKDYU?k&Dxxe&!VG&c^D1%Abzslg#4v;Lf{#mp1=~g^_(d=PJ z#dx~4dt%

p*i$T)G14*DJIHN}0aoZFv(AuF@PlA{9RzZi!_H|JJaTMs6&bGHV<)Tf^z|9?|crfJI^o0~Qr-SE#F zM%F#OuBrLPwYyjEShZut{rD-Ke-%0q^Q0Lew+T}xz5cSjn9(uDLR zw~1*0cI1i$L{CWuOAx0CtYUVhXL94asbG-6qC&n*RRt3bk zw&s1L7{4fm`Jq)O0RT8<#kp~Q4C3HkP6VkHV|tr zETW3IuCU$7Y_0$~V7=Iz&Yw(A=E$UKOqM&RJP1c;J_jX$TN;P5zD)O)W-){ysQZdu z7JvG3h1>}eZI$&15ue3mke(c^NC{m($;+^a&W#{x8iSp z0S=j0D8g#r>*aH48$fgGpFXh=3Fyg;!GA%DYvgL_zC3NpW^oenh+ZufaflFvw$uyd z*O6-W9jw%{PQeW@zvd{FXkUTWym@vZM#RMa@4i6(|4UK-Z`1cS{`!V*u7B^kzi)X@ z^H^%D=U^G^rx}=1G64Mp3}uk7Bs|J)`K;w4#UsEpS`lM^NLUl4 z5Tyy*uLNE^Ov8-4fGk(ud35@^n=3TM9$)Nq47^YY4lr;z1joX_eGTz!2wriWNTpYr z$YA@C$8i}7PWrefbzkVm*6x`MBGsf`{X9jf<`7R`s}Kcv%B6*ACKjxscq&bZr`#qc zo(^DfWzs8PLrB}{9oJQch^MD~9_>#k!2zBwhu~Ov+754U%*)(OJi`Vm3J=4GtjlN& z(c^)6u{4i;Qf;lm_5&VUp;41zvWELfgtW6X$2KAchtm+0wiJp_ha})N3TRLQ)XWiN zBPGC^Io#$&kbui}R7P0>u5_dN)k<(s0+vB=JQ9$nQ3y`>MWO5N3_MEO{??7e$~?KE z-NmU)ZjKt7ETePFiC>lX897;sXoMFsj3ivPgTr0ND=;M0mVA{08;}G!EE~Fja($vF zWobgXfZN0*34Q5VTHqPTourjAURAZLXs0i}tkTJ%(d|2-R!3n0FdXU!{}7`#$J42pr8J%VPG zLXc%z5(91%lNi_~*lw)J()xPq*5o{Ge8!95e1$#Vn@RY215 z@kRwEAYI~OVSKPh8tGt269UF~t+7Z~W4_j4dX93qBjqQb!BW%gG?KUnQ!C-sZ)m!K zeEWB8S-pAtrp+6&>;HcJtJWr0?^)Hl;-m6Yr0f6A$|S(*Ikl%5|M-;OmQSJZoDG0= zdDA&;{@mW09PUig)rcKp;l|_0^D0uMJ1ny!;8)1a?xK}UNI=>v;Ulfh?!s=}TsE5`PEAd(*Rdv>F(P_?*n(u7UCX zw1+ng&|4|`j69KamR~xI=pek>U7TAqjBag!9&{;J@3An{v~?LJx`o} z@=Mhtt51FjpQ^WBd*M?DzIH$0e@CSRu=kuAcVIs*U=JYkA5qMV19~(XXkSA=$nCQe z`Skp*)^=B_4Bef#1z2mOZ)^vL!BBnJ7b zuE&SYI@sHme&_+;xIt;2`@A=upDY2a9xs0^lcrwnhwYE3HgDLV)Fu-C{`7ptlvv1O z@q|FY@+N_i_9h{T_<+%Z&?bE#;mDE{r;B-rYiR}_bHcr0$R>(PLXMH;OnMbC;lJrT zC>YI*d8K#-N@= zHZzB&!_auRR75!r;*U3vQH9G|l!I87WnGlZk%l8R&#%I^Yp|Xak_Y|6AFO7AWWdM7 zZ!?f6Xr?Ln61X>&M?M4??t$U61-b{iDvR_2`cOb%Z<2@A=mJCoRHfSzogK{kMAr(D ziNlK`6QdthZS_+R(z5FApT5`0#5+VLG}YeD3U!o~Yv-4W4#+=v-GSK)ltV#5HjJX8 zzvnAA%tL~uN|2&sGN>$dVHGk>cDb0-&#U09z@B@PC@h22RuqNS}~U^fEQTz z1`DQgIWQ4W@Yfu8OdqjmKFt?t_|cC>^LYylRcDS~iXsTdOGx>nPdNF9r^t zZIw0_b?N7Qc|62Ff~@*Raw2Iitn-rU0$lwV&=Y*IG&6@mOQU9-o@NAsWcB2hUH;v$71Ff{S16STPlw{Q~W7G zM^NK=v0^a65Jm^*m@62oJS6Z}hG}|CETGXTR0PHl#ve14z}y(m-GfUq@!j$Pp5PMg z#^yLU3B~@Azo@2u2a5gacS5tjt-KebxU;gtjpDb+D8{(SK!z!)$`0h6(KBC7Q#+Qs z(pg?61%vE-kokLT) z|CPR=olWhNevqrXo>;j=u9oBIdTVxdG}BS zkfGVaR1S-`5F^+vs0M=6oMCS~a}3e#aazf3rG7K@*ye%oCmpQSI#vSo=1%(E?ro*V zAi?>K@~j+^NV3O>Nm2;GJS&gc0Or0tA7=NJZNjP4l`JOj{}4FzAX|Hri!TL-jGzp4 zm-4x}G_gjbO)hh@J2jHL;YJ^8Ok>Lt8!qE}Zqh6mQvaM&2+b}@FnGT0j=yiv&o+%A zs_)Rflt)OnMfF(mXixJ*o;cVv+Yt34E(|E8zHxzYoWsO2|Y9#-s`LiQB|f2M$&bj9E;aQ;0cFm3Voz zelP$#5s(Hq3U3YoQ%bHVbuUs>?dV1A| zR(@>7S5~~D>EM=|fKy}t%6mvg=&-q!Qn0+`Mg=n@BX&fIv_#8@8$&UkxgjGlC?ltF zUc=kUeJtc#Y!S|u8?*xfY2Zrvk{7t74#XJ>+V9QPSvyK`XZA~H5bQJDxL!LGhM0xJUI!WG#O#=& zwLW!Qhk5thS6M|}S#-tFTCUNqgm|~SuKWmjN3MEij*4l(mN^$AVen_DEK};9`^vis z1X7J^|6Q#h1o=sYUQEVu-I+$t+hp@bSQ|e-oe-bS-&3Kaj*@@5{VF9t$irol9}5p@ zH((me0%m$d-MLBZvY17tr|S*8O}OoHx+u%6?|Twn@4Sb!WH*bRli|wa{5@eF?^KY2 zJf=EL!efCeQsGJ?R=C{iMdfieUwH-dc$-@T*`eeIdAv;WW8v{RcsuSPKi9|723Q<5 zjLosFZFE*E6(KE^JvVf(R9r%AwN{NF6wOv=)o`nr*y<$w^s#K^BIe~T$ICXQImFB5 z(HsvivDBO6+(Bp1B6P!9_Wd619QSdODiPW5{vjI0za+vw-W=vzq)bd9Lv=@8+eq5*NaaTHv-Ie(%1emiMPGKz6-se{rOTr@ z9){Y4(516+V8NqJAvgxBgn%{HdZYMinVC9zESzb0xgrweq1qJ!P1LXyuZ~#AZQ|kJ z=_5zW_keB3E63ePyiADIfX$s~U4|wN<%`RBMI2D&vaWq}>WIbh&|$SeSY?=Mb?E z%Kv{E?f<`NbAHpuH-2s76&uRypI-mUbvLzCnm@Gm`L!q3u3r7sRZp(`wH0ss57h$T znJB$@kqfI0+OV3{tae5`S5%GfU_DE>_=0M_SXyK->_;0)L+q3GhftvH*fEZGV!^qS zSIacGwl=YK4M*EJlXV;g5}I2~+;PAHq#D6?`&{_&4TKNf0eECDRaB_4Cc0>dq-C60 zOtDyS^^v~xNTTaLYQgiyejbb+SUJH;&v7??UF?5VGf}uF5sn!_3S~8 zS29k9`YlB0sM|h8JwF#jd;>KER--pz?aaSxNZCc}TERMs%R|de7JoETX}`lv zYl%51&Luh&$v5SWp?>~js9C}AA*DUBkU4B3elp8diUu|zb|z^XqBaE{^E`eMBR@ea zd$(72yy|`U_x|doFMJ6ycJJ}^FJCz@uIJ^Am)7S32^y(e2A3WFZ zZHdc05#B3ljq$>#s-x#|%0TtdMy4S6#$NvudD=V68>4>5TF%EMg=**LnfKL0-wpomlMWFQL!a!2I&m~Bw~EJ3=uUnD*NX(B&_bi0xtM4Ap)6!E7s0qZCxX~g2s zt>QxZ;ieCVkxnS7L8O;S>Whaokx$tyrOFyN1?*AsLrAN^y;C|8DbsYws98$kR`DS1 zUk8g=u6}RR!(leuqWuW5VR`*{@z_A*huE-N$q%xD69V|WUBNn%4bq4Oo?HD$*zm5V z_lEudo3$T7HY~Frv9RH6{y%y_{{Kr>T-dbblFdgp{o=-d-}vqg&u`eh{%6dJSZ!T%@!Rc4_w=1<+|e670%L)lu^f1r@BxCM=;YdKGX@AlTc+1VKENIPT z)Q309#+~IjkYxhjp3j`b{sbg@Sq|)*Kw4Z4BOLq(k#QUYu2(%qZr-*;^5Yz8!qF^S zH@sh|-Q~Ms&N0rhpl!YQD6qA-EAT-cXhyRL>&iXW zd(6>c(OH@<-4qcEK^oOokpYQ>L`rl=da285Z%f?t4aopZN~GYScT`@%NLA7<#&mnI ztDIjUBIwR#Sq@S*1jTFjRQ1PX@cEEhDnPqh50|EC>)^TZi2|gZz38hG$zFEcE1E)E zxs!1@gfS@R>3n9)v@2HL+T+zD!JZ*D!GQF*&9Pu?qgK#jY}bQ-}pQwhw%K~Mxip-K*(!MKD zJ%H}7_bz>t+`@07_{>eTA)23`ednPIRu|;5qyGljXyXx)Dd6 zI`;0J=cJBrA?o;^o3No*DtVLHVOJr}N^-;sPg|m!iS5<(%nK78hJ4Cgoh%=BdoB49gt0GEAN`0s+7ex6OO)C7a6#ghl`NZlpwVQ-wDqaT8>DOG|8Hn|uxay-4gb3CZ<@cgc5%(r>gQJ< zT=nghcj5An>fa(ce!CyI)Gb0yi+aMGHs;Ovwwcx0FRJa>almSoH#e8h-IJNY-gRt^ zxdBS}>gz8hJ#4q2wPObbRwiltD7LfHE=1idO0@v+tyJWVhsa2it#zGKxp8dD1(S5! zXO3M)a_(l+<0W`*ouzD+cMNvX7Fz6G>&6CeackV(Oq3>=#x7mjeF^H&5|hnlSW+-+EwUwy!U5jU=`qvzKxXFIGM(F4|tWjgEBXU4Z`eY*6fwU;pDXI z+3tTt;ezZKZC}(Kir7QxWn~Af+gj+`1+04ru^kySv?XqN1G|`s_6m=b>LJc$xTt#Y z-K=95DOqjz{o9~mjfTCu4qv;Y?G5E?+HATzH(#+Un5w!G1G8D|(*#%SE?;aLr2Vb9 zMN`iJn@VX{5J@tB zoFl@)n15$W;0@J-PYP!a-oQbDam=o}JSb)3#bu0bxn0hkqG&6h?qx3P%z*L`Sd^qK zc)^C)eff3C(&)RH?M@tw^-^$sS9!Zr{ZsZWR5pw)Bbtpz&1IcIVPSENgXCDy5uwV4jEs9{(76lVqPWSeM5Wwo9XfVVm4`mxgtoxN zc4SV}$klgRxd9lj{u1E0H<9`@$6P*L9T3)3roo%Ssq39gri1;Y0-XYlHRT(HMs8(j z=-!4f&=BjO|NJ1s(|U2095%$#7S$4_jsavlVbl&_KQp$QmkQWg51m7p_j)sP(59p< z=<8t=sA=8WPumlycpNGlVXRN(CbWDpS1Xx;3*{md)DsJ?+4V}-SZ-;jENe=QuqOV8 z#J5tdXdjLf4~>fo(O@h4uONNVX&=F!1r=(Jj`Xt-?pR8#;=Fq6Joo+J9(+I zG=@!4QNpyHW>^O=HjiU>24M)Dxj?Wrg7tnVe%h(8xZ@Lt@=^K$`y{#059*5)7P2R> zQ5wor&Pw7>*nV5X1A^V+?eWg!HVxg?j5v-CA%@|2!aq|_uV_V0`Ki`Y!JABDZ!WA5 z+S87*N5(Rp%a*7Hl4K3GqDn~~ttc1(M>_0O=Voz`Na8BVeMzLAkSu^#PS2y~$Et zaX@_ws<%W_EuY+pjp+z6l*XsQU!P2%tWAbXMAYZ`5UTUR9;)HI>{oYkk)paYC`|x? zb3!pnyAbrN8=f_yA<@Dg3(>fU0*wd0o=E*JM;sr2^3=5~8oOa}n;CH|C>oRs&!XWN z-KZjvTS+wdUWi6In>mS17*-ENlp`=20gXbk(VazUB8*HN3BZT26;Vou&Ny;1qss#4 zlpSMHqTp42nhO-6JW5EMu!)8am&6(Z3i8b6sCti+u>M?$4uGJa2ds$sDk4zPCHfz> z2T}_u&lOfTB6>dI8qJ`9$t<7DJ!G^%ggA)?(X+RtYD9EiJ8K^rTYO8PBEnWwBAKG7 zH8F|7!`xB86o#5H2+zI#Z4ygOec0IbKgp#49$y?JvAO@vPNR4su~9q52|>eRW2bk% zw?T2S$%E%w9C93YY^|+pv0T>L#ZSHXIyuiZKi^1QevGwu}W@jQLal#KhO8)88Pr)s0tec+2`PuHUil?O2GtY)xhL2UiWOSU@B9uR`^mdKMAf zQNQj!@#}hW0~9=lk**#aD}d-(JwQ8la$uGVPi|YyL$}#y2E0I?!nU`<<1gkt7-6~D zR+tBvOnb->E0}71DK9^VUy^gE8bjp(lQ=dsjW-tH`JprrDm>-0RN#s#9icE6)d523 zp#{uQ6O&N=T{vPQCE3ilSwGCPB2);RpV6Fa*2|{%lY9Vw(Rdjt6m;)xJa43^Qkf5~><&I2+ zIiu`Ixi8QPYkLu;%fL#-rXPnXB3gm}N-Y?kaA6wbm^yN!3s@mQd8-)$nGWBEE2dBC zr$ScB0hFAg;&k)|qp_*RA4O7dpwJwS0m7l4pe#R!%Dk|`+fj%K=66P3qjwBsCQ#xB zu@^*nKvaruLRBVs^->rRh8Q$3oOdpghd)%i3;s9iRDq}8;iyL9mIM!l>LJmJ)zk~D zEi1#s(^Id7ax~G7H-&gwqa0scp4KW;49V~S>87ws2gV8&MZ?TUMXU-IeUu@bKm^^C zTkA`EMJje>e@yo8&u8e9N|$aFX(}ox&Ta1%%RFIO8dC)JD zHFVKUYuvOKq(WH-5`b7!`NCls8yF}Y&!j);6TH_2A8j^<1~M^9sdQl%mkNbkh}T7B zR`Gz|G`!kk+M}{?xuVgqJcPJZTuo%t)$k;Hy5E*hM5R0o%MqLpLXpqhEGq1gQZ>cj za$54uMaFDeM~MbGRhIIVPxO~{(<+y?zMCzQh+}x^Z5V|V%1o3cMBe^(4rf(IKfsZr z>LJ=J@xJ#jQoi?|2d;E{TBygTI)yHy_=He(hj$N@CE}IPTBO@La3UZ24*$cHBsA3p zU4(L$>zksGUPoO`-Bnxe(nT+&bf4e$h1y{-|aWatJxXVN3aO z%%w?`zs5M?VwIScQ3MZjHJ|B4hImqf--lqYVuvtw)MfPGv#EQR%T44<$BrQ#1{L<& z672_h_Dysc%{}@nJou`IrZ_5ErrIRC%UfKW`W|I2CvdqjSVzUQOQILr*&ztl_IpSQ zISDz=O`&EerRK~aG@Fp6?@Ow;OMX`M_SdoGm0!<9`06Ro*CC=_uslozCPB=LG@>y` z3iyB$kQgdj@RXMzvNRG0QBnEsTw7vKidP{M9WolKxBU~xk*l|fmTu_32zP+v&@vvxxdbQ=gHG(J3=?|$AxE? z`CjPDKBz6xe+#RU#Bh3fUIvN;|kMzT6!;qJVaV%m*DBew}LbRQ6TPAsMaf5Nm- zQp*2kj+M`|{4qx8T!;t_r|;xNn1+eq+n5Nx&xgpsJJ_a49C(cRQXOxSzhjbp@+O7F z48>fKB7PoA3?~ycN|D?q6wy#%`=uCj5c9iO-8PKc?6wX0Xu(^)=w#2?iSuNV}oc?Li z=M(S$61kz||8H*kY}4lNZhCIhj*W#4f4X5{{R8WUTT*L(u;%gAH?8W#kN;2kcd7`{ z-~EuUM*dF=tgf20v83xvpst;N7H^-MLl6)lg7zZ3K=wa7;JlKlW>W{q5N7MTBfmg) zi!454F&HKamx%Ue#3qBZn6v^I(QF-2X=%j%F-PMqRGru@L2FKQSB^sv-Q!a^Iyj*F z*fG$<_rP~W);caB?Vyy#T-lA~3o`nwsn>&vV4T;%d$J3&AkC#6pmaH{k0aiJCy6$YFXW48}I=j(5Qnlk*n#!N{eP z5NIQUE^-e|;v5B3gC(PI7|-U@77$s*stb(U@!zn$=q-@7J&G#d%okKio~GK=^p}~9 zrF0&$w|$y1SVFoJ!n^a)-LnMEuHZ8bGyn8bliD;UO zspOdy^p#u?Zik&@U=lN@%7r~cdouuN+B9CiEDZLZrtRj1o^+@a`h!*0QnDQrJm z>m8jS-xZ;7@^ox2hjURg_mF7$Qf-{NH2l#m2l(=MczD&R=BIsD_q2#qH=tm2b@ug3IIx3J+aO_iuSYkAjL zX>lC2yoXRpA8HM8B-){Y61ViXFrMbv;INmSfnN-XfS8)9?7m9tMNvwm84z6@Cn-1t zv7oYHi5tYROWg8#F}YJe$I@I){*VW6l{no5xA!B;-98Iv2{&K~%AEQE-I_iLUz6d+xgX^C4dLl{!Vs2N zF`|a?TF!(TMyg5{*GDoanhpGk)k#`=Ww#MBjU!0d5yz*2%p~R*l(3Q2gG8rMh_^{e zo9bba)AC8ewt}q;itR)7u&tvSBC(yoQ8@q-$C)4s4Ef7sQGS!AGZ5_?zWrVv8FFZ# zAqp&_dzjz!xBwR=qAqtpWJw*4VDW(?5EGO0I2?e+r!VV`k75z$z4H$^aFFOy|G2jA zm20T)i%782zCT#6?{ysH$iC;{^G?yB2bdL1ewyz*6ogG6N9i=kMs5U&MHkK}5@FH< zP-xUbNoEm{D4@S;H|)))DYpSI+9PLrN;pk|tsI{j(3imhI>=CCCCCHXPWA(7Ixl0` zqmyWcGh`w`f=V+uWrU|>C=2BNyi`1uONUA$%>da$*4#1%A{aDj&9U8-l9C85x2g)SG ztVk;ZNG`xp^ofMWGk&7|A0&Eo=MgrdtG7SM-^;6D)%Pqo-rrxR7kpIE^$qmGN45l( zkmZpOjh1M?n-?9bcYI1L`a7n0wkT7{$Ih}ZWPYj+6+rU3257KI?!zLBoROu9n!~jP zK7Wfa?8;z=9SD>mk!WXgX?^vMw~7IAySNx+L?>JSffuUQJZ7>NZE#(h{rBSp_^lw>8R^L)Sv%Pbw?fKi2$N>I@<(f$=l zzU_EcB;ii89Cf>hCl_+QuG<3-7q*)(-=6GftAoCvj8apikBCI48J>6kE)U!49VNB_D(i`d{%TM^Ss$0HmVyh! zubpNkXxjD}N>;&qg?WYaHrXX09tyb2Y{l+@XF{4u%p+J)xpCG;gV6Pe$C_QMnCHhy zlPA6LJV1x{gwHU`7zr3jj3Th)gEr`0XnPnY1O=OsPnYNvTQbqbX3zQ6yH>HxRPXpQ z+mz)0uWPC_ZT!0pKUn`aEx);Tes%ZC;--(`(vRrhBKZ;5Kj51&e_psjnHlG_!b~Hp zqlg0&>;&Qu*$Z&qfe~9k?WKv*7)@ZoW9!TzPWIqB@r#Tv?9O4rp@aii!k`(%O`E7b z$!Dm+iLO1)P7+J(DR$1Ou#R+JIyYUyq-hRC!UP1q!;WQJ⁣C3*^&P)PJKjF;IZ< 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%0AoUftq^DXSNPUGZ z=_wWnQeR<9da?zA)EDcbKgvlK2vT2R8+W1wg49>o#+_h+Ora@7$6{h~OM1KoG8Dl{ zjf~@w)O!?M$d+R*5LoL%wj5)Dz*-lw z6@_d$(gOJdPI5k5o@aqz2Q!(^mLqsX{Y~&>K3fjwkw_aRmd}>MED&@qI$Qo9>i;d$ zdJp9SZ=#bT4gCp=wBCI@1$V-|8o06Hghg8K4tL&Z0!H~&!wHMDUWFbYplY>J?Hvs#EYf<_BuwmEbd)Ceghg7fnn=O1-Wst;>s7c^ z97KLD7HPd|oOcw9v|fcu6AWNt&o!K|Nb6N&C^#4gA}3~%)~iOl5P8Nd(s~tqxigAH zEYf-v9CPAjOiUscX}xMB1t*@+h(%hjIuF6$(}+b{uNp?d`hAZLCoIx>6^gq4aazL( zi?m)fghol6(i5{t>s5m(xD)&nUCBfFN>DWjqa4+v46#54Qn2%NAvwxm3#1VU?oFE5 zAPeMNOz8tXv4Ivy1A^geX_Q6_WB?|1z8>XV3*;OMjw-JyM`^G?&L+h95xGP%76|H# z^XqGg46r~1jpDpWMk41}ApL;cLq|GeXImik2+mirv<1=^2>L)8rN0GIhl%A2pRhn` zy`%KAK#;(lVj=5Gy#>;XMk&;nz7|MN7a~Wgvp~+mTJlA_)&e;bh^qebB-dCVJqRh3 zq&^l1jA^0pRa+o1riGK-+X6uwUnohvc%<{ySib6=7B!scX@OuX$9a|D^oA2>Ss>`l zqv}eNC;3bZ1a`E5^sqpX!J;swbiZ`BK+t9vkTWb0l!-zf>t=ymOeeXJ$GTb|XtSMn z-N?0cu|Uvf7mz9oWFbwgP%ArIAPWd7ROCtvWIjguGac!3sjxsU^djXJ$UGo<+tbMc znF}Oud&(@3Iar0dU*uX+7RUu&Bx!-n#>DdVC1HV}Z4kVue6D&hB1J2A?L z|2zHvNsF{ze>trxiSsC%`I8oDy>B^AguWS0TBP;9oxF%eTCe+v5T_FCYdC3<*6Y+J zr1e@%DUnAk(t7PdnoE9e6vI>(t2-Hn#8wo!AQg+t@lRP zRIVDW84V``d?o0G8W6owk5X!ZD65T4_kbM5Z-HC|{S!D!#Aku1Ddk5gu|Sle*Q1=c z-U30f2q@Q2?Y73-+MsW~1v8ybQ0fZz&bfmRhX@OvqrLgh6!veu3O99z#f%K;-1+mpa6WeBi zV3Q>o##-cV=~fE_?V>Y^Jjq)u5NsI~w%0dXAn5;{Hd{K{O%@3He+Q8h+sGq5VNA=h zFCSRnaAJc6@*_G|1!TPiaz7!3K69M~QbkCiX}p3*&Vsur?}d+2u4SzS@;3@D`B-_!3uFT(cAY+B zODvG}KrLH& zJggCmwBFPe$d@%@k=C2K06|w1kY~&ytv8|EM$y#}Vv*LHI%AXv^~5aFdQ&Bk{Ti`I z>rE9v_G!c-tv8hec|ao;X}zfv5ZDx2zC~JZDg$z#9>pT9H>H5ws}YN|-joD_O%R%x zMOtr40NJZYu}JGpXnpf9f;(xE)|+A&>4JU{4hf*0$IN4}{ps-e`i(ew=S|B)A73$)bNP`7}!djs&eu-o(5ERym z#rX6kGQa{sVXe4WBj;EkD6AD1Y2<7R1ckLiJuZ?HOIsi)tQ8CODE%!E+$j|cG$Jez z6xND)8tG?&ps-fV)kwVs0uK`!17t_T$-Wi{JWOb`M(QjOKLv-*2l7nA$yy$%M;=R{ zSqR99)mR|vk!PizSRV^yGX=-@0QpP9$!ZH^6AERa@{!1L<^iA3?`XQ|TDk(b!CBnT5K%M&ZskUn?4$DKWE9XI1%z zVx;#Qn<+K(&{YUmPmX@rr007 zpb5;JG;7c>Oac7NS)|~+0xjIoY?0PSsdM|RT6aUUMOtrar(h?qz2DGmk=C2g1H@Hc zlZZuHZ$b|cS9wh$7HPey)itrdG&EbJ^`;geYGM+xNb5~7^v=X2Vv*LH(8(kw;3Nkd znk~|L(*+cqf5&9AMOtr~4dhQ4<>rRwp7Q!*UQpD83nuzUjhtnH;3|*4qmeT$kQtcR zA2ia#0+|lvZH;udK&Aoty++QkKu`dpztc!J3uFpL`K?B}S|G@=`8U8dcdfZ-8qKS|CHPmKXI}0v5<%AV1bfsRc3! zi1Jr5C;Kgsfk1wwNAX!8DB}4yz%`dxAm?I~A3CF)yxsz70P+Kk?6N>IK)$b$>nxA~ zK%UdcP7CB5Am7u-wHC7fe0_h9nDUEEiKeOCwt?kXj($)W{YKqz1@0G_u(O=>z0Rjcl?&s)2l6 zBO5J{-awwv$Oa3f7m%-MWW5E_6UgHlS!aQq1>~y=q5gkr$rB}IKQG%|c4^t!srJ+h zsn4VqrfQNWlHW~!JUJ`bJ@L21lZk5+6BFg}cjAx4x5S&`k=U!ZX8Xgx(K*J#Y^Lo*tz;9x4a4QbUyRc&HPgWg4QC$3tZl z9{GocDCzM~3eev*L}`zQu=5bSL_?JLcql>PLACKMPdTMN9*P1AVI;XDMahqc5FRAb~uLK4ENkJpe9%-2sgift+B9>Y~XuN{x59mZJ zv4UR0n$Wrsbcq#&wkU|^g`mY&&0M|ADZhwbj-Yu~kg|X1<_MZ= z1@)jcMKd_%5}IQL!B9m9Xy^hf2;M00Sq;s$f?z&^7Xp$`7iL*OVT50;N1AB`l_Fei zo5&L}!wN!5(SKjQv3a@`R6-*;P*r2|G#jYbM=nTCZ>kmaAwkZc8Y*dQo?-=|<`$sI zR!}?6-clUp^d?zBEfntj0X})VPqc!X33C3Po`fb?K_>}{qN5B*XuK7KBIEpZ9|?`K zg6^l03TJPu6|@o4JClw9d6kc`f{?%loR#0C+pU}`qD+pOUezS(ovw~EHeGibVPa~`#WLW)ctj6ZyHc-!x z(HPDZA)nt4vw^z5O^|byS2i{ewSwjn6ub#*iu_;e|E)4wHEyryR4noR##2@qt@=I+ zce-*3S!J~9dvP+?>5;55TJ;wJsa9T&WR=mX_X1L_yo9VWTJ;`4YxMN2GFtULfL3eB zDx+234d`+WS!J~9-GDCBkX1&jz6+4*|K*9W%4pSh0$QO*vdU=HUjU>w4dh5x8Lj&B z1UZ`q60*u@)t>{THVq_XmC>s2!1R{TQ98L(RvE1t&dS+okdReItG*p0shtK1S!J~9 z&j8wj=|vh(S!J~9+W>9SkX1&j{xl$U!OD?_*rdVgTLG!FC!xVs(5DE>ZyKB$WCh*g zg062oHP8zBBtg!1U*suow1QCGg1QGgb*>eJI-0;PfV35-8mu5xY^TP_>1C`S)VLsw zEnTn!tRNJs2&@@F=U72E(%H*zSe-iC3c7)yAj~?Aq`m}%KOuPfF9A___4OF(6deOq zji>rsjkF68JSsuL3c3zsOvX`8ub&mP6X73dsNM>?mcoO70VJ=8zE%(#si=0Rr|PVr zt7weq8G58zD`*F%r?-(#)mTB>y-*)3Xqy+Rwt}`|HK>Pl8TGb;kS3#xfXY+e%L+o8 zEZk2$tsppv;FTCj=DoA5AUKGiD%27>(+X0n8Ku|M!wQ;5;lbZ(sJj(32hd1B@|2%p z1x=vvXq6tRn-w$`BcTk)#~i1+T0vs~seVO5U96zdfYkjfp(-ord_cI?X?mTlAbdhW zWfCP+X$3W5B<1%cRAB|-6LRWPdE=>aD+v2rQG8l~(#BJrte^&(UUVWI2`aOK1l9yM zL1!;z1@!|2H$hO+3PRf(oq_2|C}9Ql#Yiv)G!lI=h<(gaT}M!Kx*jQJ1=RwYrlF`6 zgnbkB*BEJf5i6(h6Wq`?~W%6aJ2^;Qr(Tmjl;1)*0iK-XD8=#>l5P8+Bi zcWzK!<+nASy4DK%C9)BG0`>pbSV3>}1%K|iAK z;A}wh!(C?uJ&$ldj<+29^&LbJrOlm7t)Oqy^n$8Il+ZFO=qW%bqBPP{E9hH*REsE~C05Wk0eymw zG}0wj&^IXD=_@6)*a~_Q&@?^L#a7VQDctERNsqM13i=v_J6*XPX`vPL zI7YfokF>xF`YIr`xg$ri`i@ZbV}P#JBUyb%sQN2_R5L0^nrAh=M**p3R6=vDpho~* zsi!x`3VIlj+OU!%U0?-$8IbB=B{bU#dWazBTg?)hWd(f+&`dhgtufOIdJxl7jzvN< ztf2jXHtUh5TS5B(ZPL&*E9e108x=&)|L2yxYWw~Fzs8@5-x!}C?-%@!#fO;&1c^e82NO=G*0) zZ(fVN7I+D+PHGnwlyo3uGq45!rVDiNd64636tZ3|N zib|;TQIc+<(k1?f?#fHIZC_8yzWbZq(V~TFR#D~4y|bWFRW$Z8=-voI&VnkGVHPLc z(V~S)Q&Htrh*e2TDpN%=C?9u6ixw(HMU_`lY^Oo zF|3m2Oc~#x{8x9hXrWYJRCyt0I~+%;Jk_lHt~*+^Ofe}hKrDHFbp`+qNT~Cd;w_&^U5R5%D;C*`mJD*%)C~?&gjbEyGR9pLNHkTZWmHySk%A%TSZ@?e5rg%Mi0N9wRt^ib8sm z!6xO;c$Ej4m8;y*qGg~-`8IcKx~0*q+}Ry1TFx~otA;uM2{xFOE4|7Yld|fn^U4Fv z$`xMab4<#ga>u4y&NeHn>)x41zm_zV@#Ufa=|n5Aqv`xwp=3}?e+bukOl#g;p4%{_ z;oNhV&c1ZZnyoY+jrD60#YgD$OLu6xrJs4~J>1caE%h>*eXiWUJ3-Ftj{e@*($@+K z5Tsw!*w|8M1(gE2i;e;Lw5-+&^1DWokE3dAAn`5NND}H}1*t9>7BV0o8&+FEC0NZc z9Oc>TZ3FfD7lk{2<8^3bOD`)3I}Og89_6FZo>mZc8k~1MO6V*r=qosT*JDi*I@1c; z2WXdudRRel3CS_gj5s-3ja(Z2? zpuK>UDU(o@6|@Hsyi4E->i-v%JX=!sX4%7KSCvgK>zQgvy_mWuwKg>>)hYRY^6BKQ z$;HWrq(AYS#G{FwiJ6H$@ofC%_}=)2_~>}&*n!xyvD;$HVvVs-^moz6qr0MWqP3BZ z$SaZiBby@QBVEEr!q0{82rmy02}eTjgq{f96q*<67yL)?wcx(sw&3Jo_rQt33xVB% zwSiHAiqZq6&z9a^y1aBqX~h4I|4IK%^1T4U_fOw1eUJFA^^Nv*E;%5lEB}dB@-9U@ zuy42eptYZDCFf#r*J*rMPPAwx?^0A5SA)*O!&=F?2=%VGe5U`O>3h2n z6*MYZ$;cEP2G@^{t#8#fCi=g(HhjAm(mn*1AWw@nG49Cxgnaj(>5es67~gJnU7b|A z{aclV@s_l_Zr4vD%n25)1_$HY4X^L~b+eLmE8}2LX>_z`H8>dGZsqlzDlA&b!4y5g z>JC_=mX~fN|6;g8Y7yr|i&kf+VJR9r)f-Db zrD&|Wg*Jnb*Cp8#!xeD`;+$yFO1`A1@@T~7?+&sfMPf@n2Nxb})UzNLQhXKx1En3NL6jlBdX1i3+nOufJx!fHsTFG7%RYqQMp4-Yf zldCW&myxoL7Oi9_iYnhsv5AlCIg^VpD5u=fqLu7JQRPn{7Dw5ywvuZwC@0;~qLu7I zQDw|FQK#ojF2SIjfU*-UTFD+1RsI-aH)-Y0X63j$TC`T0l(CB*`-4`lFe}F>PDhK@ za+5N4#)D(DawoHLl;U)>Xe~1-Uys;6S~+D_4!fg8Ytp0)t6NsBl@n&=5XI?e(Hb`? zV>dsjGL5|IVrJza=Ilg^)~HGOT8d3<(Q}TNmC>*1Xwe!rDPKdH$)9QEkXac`osJf* zL6h>;q#0DZAM$Jj%*sA@v}i3gDXaYXq@J_itXzUPCt9@nOv+bMYyx?S@o zqeaX0CgmN7-H5r!9kg9$<&WIaqUAc1@^-{-(8@c_%KvmniEoS9*#5vKTWwS{cS49HX9?f}^SviL}JJF(Lqe*!^ zVsXEa@&>bVn>$*xtT!pILo6~LDX%jtXWh}FDtm! zrJelm`=9pT>R;?{@cZRo1$flA(>L4nJphq4I2_+@TwlQob(Tby98M88LMdFKMPhJYSWcYL;;~xFdD6$Qs;@Z}%HG2g}r%NN3IN z=Kg)|XpuFz8{h8N5!NF4$bdK`W~ot1&dblHASzBAJXVa>>kkS$kiD7 z>Kb>nXeD1$RQU&3m-Z8_agPNV_JEsS-Gb> zTC^@PDXY$SzgE7)tb7*YoM_Ry*rfb*#IDiG7n_yObVrNUi%iN-Aoj0Xd68MUhdWxd zE;K2B4Y8ln$_vcO-QCfmb-qdYam3!Ol`k|atG#U}TC~nHDSs83leO|(vvN0gv}m1U zQhp4vU(w1Jn3dIa??j8%*(PNbl~%9Ii`J9oF|x-w?Wy7?$#=X>J5-CM{uV5^Zl#yCgV9a``h_m6c2i`KEG8LNGk zllokYG0*sX#5vKTb+k!&F=F%khUc4=&vr-W`~SDf9xdBhHoL4(DwldWb#H1zYHX@= z@=)@*EN(i@g%NH?}D@KGrRI48H?d z9UU1>Mc#`%6}csHQDi`*B>YzR;qW!#>EYg?me5O~dqV3%qe2zI_k+&_Zw)R9HUtBK z-vk~D>4ws=@^1nj@;~dp-M`E~$RF~(?R(sJgZv#p-{QXm5LuI} z*;7gD4q_jTIuLR-#jE2!WOp4cvL;`%2YU)SHk~D3V^Dt2Jr9vJIh#G@?$~seoQ*;G zFYaiOHF=voo!qhMEO{G)^1JS6ku|xSJ!S6Lbe7zWLHW<_XpuGfn>{IaY&vW9H~aqN zjuu&yzuA*?$ELGpf3xq8?r4!U`I|incWgRq_BZ?9aYu`+$=~e3Gq}Q4XZAPy{@_(M z`I|j4cWgRq_BZ?9c1Me>$=~dWx?|H>v%lH*dv~{_gioi+QLeZO%>i>%4t>`_nm^106JZ}$D#t8DT&djjs* zbk^)|_Pynf7FmZdf=QW{0y6JGwerWJk#gRBZ3yo)6u#NN1bO)#_Du zw8)M$DgT{f14D6?`>yAiV)4AL5Ie#Y+eV5Bz2lM{Zi+>o3w%M(VVEfvXDx7>jvZ=> zeHl?|??_U_Gyy->#vFvTLD=%)<*vgbIl z?uJFL?CzzsGNf?X+hos{p>%rPp@m!jfs89yWYeZOpx@2^>NDHl5k7rRd0+soOGk^W zFey)<*z&*WGtti!JKn9E&ej`eaX)-`VHSN&%HyCsR?Q-vturgbhj((KMYh(Yj41s? zFrBS2DnFn)4IJrNP9Kx<7|b@GC#p@cqY>-miFCHNc@~}A(IVT+q&y6<*WxIj#(nLJDJ z`n%uLfr>VhYuPixt4yxNpzP^DMVraD>>2J=Cf{OE_H>}4&E#D6Aa`jWnQkNJVo>&U zprVbuOEK5E2d=Q7OwPri?CC&7oAxg5>Z&XJo*~||LGHz%?CC&7o5{cI8SGUi|6))M zx}!y#$-(Ry|Zk%KWPdpc0jMkc1{c^>FhCJ$p!_H>}4ja*Doo7u(e_jI75&E#VCG8cbSyWbjPN%*O`@%xuZpPr%AboJ2suY)~tNg9WAogn3TJ_ zW7FBI&B{mI(IR`5N%;(SY&v_TS^2O#T4Z;al)JfO)7kB2{VWGR({_dt)Bls z{r~U&zo+c~UzGj-TG{`1lKubFB4^rV*>fdUcq<*{ll~mJlj4qJ|0;L1$eH$8_Uv%S zrgP*@49Y9r(IQ9wq^SSe?v738$ekFJvA5^EQMN?n$e$Ed-sV*%cVbY+PGCWq{7F&e zt!`zJGrE&4?$~tB>`wNd?~WEZqdQT1<@rzB>`wNp{T?S;{okKd1a$JS?*OfyOaHDk1DThbSIa3 zmCf#Ce}g+(w5>DMpJndYblVl?%H}zDqHV27c@C8G{n8q-CwrAIG%I_0P0=>bq&&&1JlCx3=`}^$9Fy`yukrKiX;;+W{#ka&K#=FOk#h#CSK6Y7bSS%5JH~Lic=IBMy0nw7kTloF| z^hob;HvCd}Z+KmJbhsjPAoNV=w$PGLV<-^(UGTBsuHc+tZJ;CYO5py$roi|>m(nAp z&z0VhfB)YT^8J7F{QZ3Y@V(}H(6`Mu+1I_~M9K4oF94)-wvFRM+YL>X8Mb7AI_Pb-# zImXpo;*J(MqpR8Hj!ownSF_k1EpkRz^ME@xonu_h#qMa4GrF4l-LdH$<7zH)M~j@% z)!gTfP3IU_v&bDSazQM-KKn4Uvg*I{%0o@cpYqOmh*??n-+AT1Cgoe)$|5(&6#GecY&tj4Jd3IB zXpw6)Dc|gkJ=YZb33qHd*I=H7>g)68B4bkixL0|ASy}b0H`83$+K3pGAL@@{L|)VOCaq0D0wpCgmI4$|6^9ioM<)o6hw$&qD1N$E@sm@*#57Cgq)OWs&P`ioMnw+shPtjXO4->uH{`+B?ag z<+Du6S9_JuG%KsUle}^dlk!zwwRhqu=b!(-CEx#ljeP%qZ~6ZJm*o5Z*U9() zSIGDO|GV%1yCFI++Bfo#$g7ckku8ylk#6B*;U9!QA6^+A7LJAf6nZlB@zDHG|KNwg zH-ZlacgXkupNaSX-x*jP7!gR7zFYcK>CL4Vm7ZN%;(ycsu>UImbbn7@i+uink9__= zNQFlU){0kcE-be%N;G+jUMJb zcWk2~rk2IVK+(W2exV*c!o zO}CSaF(`lC9WC0)#}u9OpWLzOc5*QWrrBv5@PGPUbgWWyZ;1 zZ?T|kbTYs8DwC5joDJ+m7L>`$6g|&xd6mh@7?iOSSx_b~Q&jm^US)DJ24(C-7L>`$ z6jgrHt4vPDpp2c!g0j)e{L-sTUdEt|oydYRxtXGKe#5IwUdEt|oydYRxtXHMuX~lr z%NUfg6IoCuH&aykHLvm+W@YR|7L>c0lz-t>?rK)XPGmv3i%I!auX2@H89R{$<<2JM zpL>-n&C1w`EGSo)lwa{Gmz$NbZ&^_8WK#Z_SGmlrjD5?3a>}IqvR652R>r<%K{;Vk z{;5|vZdS&=WkES+Qhv#+95pLr-?E?_F)9DVs~k2fW8bo%95N}t=v5Aym9cMGP!5=s zf9zE*H7jE;tDx*RDZk)V_L-Hj^HoqTF)9DZqnx|mtgO1Q6JX@`cz2nUpLZ*Z+;yf{ zkH<~tcA96g&8vK^N!jCZ)46NR%3Hn4SDTbQ9ygu4%B;M_t9+$N+2e83xgBQZ&0gj0 zCS{MuP3N|ml{a~nx0;ka9yguaVpiVhRo-k;_IO;2{{L3_{{IH~{{P>|_y6yd@Bi;3 z-~a!zeES{lC8Q@Bh6j|Nh?=`S<_2$-n>i z1Nry=R?5Hs7n6Vg?@9Uh|K`iT|M#K%`+pDS|Nh_efji~z|3}E*|Gz7L|9`Xm{r}nW z_y2Fo-~V4FfB*l#zyIH1ax!~6xz9$rgK;vRzEpIWoXp-buQKCgJbkI?FgcmMDX%i) zWITPT=rB2%y-BY!<77O2spv2{nY{_GGUH@CeW~a$Ihnn2uQKCgJbkI?FgcmMF|RV? zWITPT=rB2%y-}|+<77O2spv2{nY|IOGUH@CeW~a$Ihnm-uQKCgJbkI?FgcmMA+Ivy zWITPT=rB2%y+N-s<77O2spv2{nY{t8GUH@CeW~a$IhnnsUS-C~c=}S&VRABi{a$6p z$$0uw(P45jdwm||cE-tg`clzuax!~MyvpQc4E>;|FBR?NWs3HL|MDu6lQAfJ`clzO zUZ$w>M_y%eG6rQ&Un<(k%M?}qr&pPrj6vDcmx^}sGDVd?^eU5+F(`ZbQqfLcrl|4< zUS)DJ24zoQD%#1*6jlC*SDBoQLD|!niuO$=<-dECH=30_eW_^QU{dbzDz7&yd-_t* zzRslF?p40RtnBGaMf+Nla?Y!~#;ok=OGW!?lX9C^`Es+er!N)lmzk8aUgcG0Wlvu! z+E<#CTfNFF%*vj=RJ1QQDYtl)FEuNB`cl!p%%ptEtGv{#?CDEI`x29Kvsd{Nv$D4@ zZC`9sKIv7y*sT0RceH4~$fT@#Xmu<}w=Xg)|G=xf(4>6a9h+`nU{?OVJ6g2QHz^-; z$EMpaG%G*nju!3nOv*>yvFY}?X65g>qec51lkyRFY`Xmdv+}d>fuaJKMpo{;w|406N{OkPV z{9Sz~@D4!w4nRf8fs$uM2RWtsD)|<)D*vV}8`rK{v2E4LrOu1cc49Xv+zV?h5gp`{ zip5@wE+}-djwPQ|G!}hL=pr3UE~#iNI+f5O9ZN2$Xe@e<&_W$c9;s+7x{0zuI+i?A zvDhnbps0|_{v~}o$RSm$bGBmRh8?T6Y+bW)1HI?f8z?%+9u*b69-=DoOHndMrx*1E ziVku{#Y9&>3{jOor6~EL(~5cnMF*LpqM~1hs7jqulq}KdMLmI{gZxlY(T5`1E75x-MV_K9<&*?=yf&Dtj@sOzR zG?``D=je99tu0@{+d+1x*!VM-(#T=e?#fuQJ4IucAlCV)L8 z=d|nc28s^yIYmWrVuPwnlA`2uPA}>S6dh!7ii+aI233P3MaklvUepsPI>_A=6}^Q{ zRZ#UtQk2}y=|w$(qJxZ0QPEFARJBD?l#I>kMLmI{gFH=9(VHQvIwC1bp62wToXOd7h-R%J2u@h!K{3TJ6d#%H!0V+W78eu%*vm2 zM~jZJCgncv*mTDjv-0ikXwfm+q+IQeO?RAcRz`i&SCZ%$Wm4`<%F(gVFG+VanU&F( z>S)n1(xj}M-%71~o>^J-rB1Zy7-3TG2~DJS`F5#};bvvkkvh?$W0*<#EGX+9wqvMS z`M5h;bPO>mpXrWGcMLWwd-_t*G03Fc!>c^dtbEiREjk)a%H7?u>5g;F%17MMqNBm2 ze1ZB~BI9W6R~o0QAlvFVOpX63)Qqt)~O-zyDX8`XKds>fzKisTrx7 zWG?x$qJM*bjK8z*|6%RDwcbn_V(@S>gV3-ss1wbVCekNF`?Z;@v3*qfB!H3 zf2P@Os7T=UK-KGRXqV2lrWqru27U@9XfL7ab$6}f!5C69?5<%v7)wfq-L;7aV@Szx z(*MetW-KWgb~ub7CBw7>V&5UA8B0or|2kdk3{!RCz_OG<=aD{?c2lnk@0h^84!N`~2mLDP&OCBy7mpJ~RDlHmd$GlrB5 zyUR>(Hn5~**j+w)Fou*2yURik#*&g@cJaqFV@Sy`yPjj3v7}^}U7|6~7*aCKuDY0J zEGZFw+1<|bo*;&l3{T@P3YL@%PvtO%lnfurVJs;bp2A@aDH%S5!&p)>Jek87QZhW0 z!&p)>JcPp-QZl?dhq0t&crb@Cq-1yyhq0t&csCAXNXhW79LAE8;T`;NO*4j6Klh`J zZ~0ce%t+IW86|7C=US{NLCZ+fj147g2XZYYl%Qp#X~uw(wZ^YC&Dc*eyd8%zpk$cs zl$hq;D$F)NOmi<4X8ReYc`FrWTNE|TJpmTxjgh9ghpJ`!6Q+4f72cZ9TXz*^y9lPa zn+ns$K)D3Es<6A(_fE52RM=gS`ck*>T4b&0$y&Hu4N zWA7%`{RDvvLd!MwE@Iu!1Yl3s*gJ`J&)vW-)7U$RbL->U7p5acRf58qw zW9WGL4S>(99;zD9f*FMGjZl{`KPWIJFEto*~fezq*eN!M*cRpin1O>C_ z`Pcz1wt)f$;0N<9Hi3er=c3eIufwyl1r#9lgZUO4K*7>;eA0Z2?Vn(FqmLcXg83s% zs~^m_*z^gOo{ds>uK=DEmX9FygZUO)J;BlqK54!Mqep&S*ZbH3EtoyR0Q{h7(UK=r zcNV^TvYYS`enPiJOP)|2ZSa<1EqOw9>$q7Id^JHgtleD^cq1p20}5a|Ed$%(vLa36`$#9k`}NOPo;Ma(V^ag&Z7@ zTH=K2PWQt#EtojM%f(33qV-LvZW-5N-w0Ypnih;3`QTbgT6ei#RnvlfBWM|ETC}(c z)h!{dyP^iI7&jH9Y0=^)RJWM4?iv+d2sdtmHtV&Di`Mw(_fZ-TW|?dQ@YoJ8`f zn&zdFwt_UxOMsM)#;W#>B%Ersi)Ae%P4gmE>uwN~&UH1-r^#AIn&yS7)_t+O(Jqj+ zj5N*jHSOyaJBjmDcnZyxx6(dUg%9EIToswxteJ;figk=_<^&cxsxb z0UUU$uX>%4rg^HWWt%}Y&4=_-T z!qwb7NriKM*jxYO_5T&s2Ul;K`#tx3?uy*}-00kv*>AH?WG~2`k{y}t7I^(XpK49L zoVq5pI5j5KGx>e;Z^_Nc6Owx+JJ9w2^PHn${U1-fo46~nE^%05`$Q!ER{RdQ1HfVN z9q1PT?u@OA9Uj{;7K^?Uy(@ZVbXwFz+9Iz+u8o`?nLytFcp-dccv1L(a4+}`z-L02 zgiZ|I^8&EmST7QMzlE`} zWb;2btY_8>1bf49Hu^je-_SOVBdX zv|wh*^YAQcV{g-#L5rm&Xc=i*FtcRs-)XdNZ-Ev|OVBdXv|wh*+Gj|+$&MCFOVBdX zv|wh*+NV(%d)I2Qv;-|9O^cRUp}MDNw56BKv}l4nT@oB}n~XzQrb0 zu=F96x*r=L#iA0VelXu+Ybsd!AWBQ;+yN~ZQ-ahF=38t?1xp`5Y1Tbb2DD&D2~t0p zZ?O#(Ed47=-Rmdt^f93XsUI{gT0Vv9=rh6j#vN)+3+5AA12)4LX)3f0jELi%>A z72BzT%(vKf3Z8;L;}n$Eo%t3_Cp>cnv-kN})1t*wsP0}IXw0oc_%OwIl23{Ea9Hc7 zP#s-7DVw!^3f0lolg#&a*07(17lVVtHQSsOpgeUQQ?~jrbmPiP~n>hrbmSLSK%88 zrbmSLQ{fv3rbmSLRpILqcBbPa!lPCAI)bNJcpnwMmf+IvjA zeNf37@Ik{!)3TeYy$H3jf$m^yT6UGSj5IB~sM-rjSUMA%mYr4j0))#~%yv@Y%^coQ zg_{VbM?A`QP+@BS@Z0@q$g517z{r}1Ag|PnLJKH7m6@CBzgv_u^HvL)pFX{8r zN2dp;oz#1&J5sf&DJhd|OTM1GA-OU+DcK+H0PuoywX?_>=k!Yaka#k2VPZ~Vc%nM~ zY5dRejqxMnJH^AXcVf54&Wufu?G%ed-;CZCT^*eq?H~Cg@{h<>k%f`{BHhE^gdYoU z3LhUH5>AIc4BZntJ9I>7$50dotp8&QYE#v_<+}oB7~Vkzxv4m53bv^N-Gv}tjZMBqN=B}UHV)*UbU#|=`5B$ z$HLlK%gZ3buezB_?Big5VAAF!BZ4Rl$=HXOp33RecPV)um&? z6x6J$j}pAx9fc{VSyfM!T}_u%;nY)5v#LH!=4IBbW>tNN;H55{FW9UKo{TD-jP6#f zS5=X)TP>_tRXbrbEUZ^m8;A9(YW2f41+1#z_edQhO+inp0%;F$2b?e1qzat2x)z+a zZZ12ZfJG&Afgj8lY)u7An^D@;N-?GcsUOT2Y)A!5|3Im`fnGJBfE^`B{h%r64fQ(? zvib{msHR{WD)5|E_Zz{VTNoosd?(laO7LecoG<7h^$R{XcNZVtLKsrA_-9mRZK@XZ znEHueo2mtjDcSrZ!8Wf8dQbg8u+8fN_LOY?4dTLCN_4~#U0o~rgE zuI(Xf8EFbzs@e}}oMY^0yUSWennE{K`vD2Q(w4+VPT1J{eT-DMMoApi$F%_oc zFg?f}gDFH+n2xUWb{3APFdZ}L8ViS2*gX*6!xd&E<*k7M`7HpY&G^?xk-cJ$Wh z8PO@xnn+9J#mJu`OCn<Z;wf9I+%s~&+3fSOj!q~P;# zJ)NuVkILp-Z6gJibNv{s%O37z4`{_iLMyNpmlzpnTGc$Nch?vFU29FNoJX8At!f_C z?@z)3Rx9TbCrzuGNA>%m(An43npQQB>IsXLHV$f9&c2VD|=287#2v=vUSIr8c4mC^7iq*ARg$=>f%?O{N!g+*~rS+RBtWseL$}+rCg()b#*(j_~ zVLFd_vr$;C!qhqC**IN=x8<|3Oog}Mv$0f#x90E?74C;{%$_O>ivbo6IYyeoB30X$ zwDwe4I8D|v(i9e|+CHSUr^>l8yt8tIbMakBOIexMff-s?nW@Zi4Z8}4@#_Rt#SFfy|1b_ek2mJm2)$sTKxc>h!`*ik_?A+`q`2PRbna49tnK_x^ znNI01(hsHU(lgV8(uvf&soPU)Qd3j;WHI?#@}}g9go&b7`GXM)ow@l)d2 z#AS&EiG342;@`!egkJzSCBApOOYE!Iqp`-=39(_Z4$;q|4@A$4&Wa9>rXwFl?u%@Q z92MC)5)Z!}#A$aLN|WEFgcc)B zn;u##NLy#MN@y|CwCSO>oV4d#trA*{G;MllosPn|JyhD1&|;)%(?e?+X|r~;7+S&` zoROwYudJn{Ev-XqTCuVOEh9~)srn=XyE6%$L)GSal_eYKdhDXYc4610pot$JK7 zLZN#%cU*U1TnSo6npVB6P9yDkcC=Vlf|ik{RnMx0q&>%Km8@cF zq-oW&>J-w_*$IzZC94=|TJ@|tnY46vLamZjj5Mu!R-HszIy<2jvr2e7Fw(T@O*MzK zbQ(b|HkF`dq-oWI>O|7gNe{J3P%+Z9>Opk^YVAc|(~3bQ@43yUF`S8yI0kGg;i)mw zwCX{1JZaZkEe4gKWu$4vnvzF*9BJ2DEe4gKWu$4vnv%80lD5`rr^{MKn$~HmmQHle z8mpZuYZ+-;4^_2vqH|VT?G#zdNYi?Vsy&8;Q>}KgtYxHWJy_Kq?bn*tgH(71!B@Cr zFs+kR_$b0k=V#M;pb8&}aCVwCPgLO}2rf;9X`P_LhZB6LHIG-}!w}2Rx&Ys9;{X;8 zU`CqOv8r}D*N&03j5MtWs9Kt?jJuM8(e5v68EIPgQ?)d)4xQL>684p~j5MvIRV}>) z4xQLhyN|48WWIG&NgI4+aSC2pr2QE9wV>9KDtidBw8?_(-YPp8S$F3I*bypwFtW5A zg5JGU_8???+QV^pi4FXcRQ)8vc6H&J);$3h4o60s)?uplKonM&=Aou_sH|nAX&s_! zCz7@_Wi_pP$XZ64*4Qt|8EEP|9>@iop=BLf583!7iY(0duM*k{5^ANW`1ULX3O-q=_k?`q)$$dfL{Ro zGWAHRAvHTS6z%}{Dck|@T(|?^Ah-kI2XF_#^>7Eko!}0DZ^In`YlS-iE{%X8R;DUH{1ab{{mpoa4z(D=>E_-^cw)ls`mre|Li|B zZTj}r?Klz6!}tjE+lI9z9KMV+ZJ1he4%|lC2doxrOVBdXwCSmJD`_8ewWdwqzPg3r zzuGZiZ3$ywq-oRlu5Kpn{Z^~&T`|(M>3dhSN$lKbwaVTVBTXBomi$7{6{^@$tHs(9 zCV`Qr4O2_j-hjf`60619610poZJ1iJ_IeaLcUvvimY`*%X~Wc#wbzmMPOHV*610po zZF*{5OWM1v7E?>mGSal^oplWfo2(W)OVBdXwCRy`H43YfuGX~ak@Y9UVziHfrv)Xl z7-`z{$hw@gw2y*XC9)W4+Vse}jGol@_NifH$p^!wh&goH!7*TG3De6+(}s~HYcC-! zok>uOoh4`)Y1%NdWbMVIrSl$Yv9km%BTbvFtl(<7h_rNqLM>*Npk<_Kvym07y^yqY zfXT|KD)e|10VH{{{H||8?;F|B1Q2-tYg7$@YZx|5KUE zGV?O~WV)xnNk5uyOdppXmd>U=OZ_EvUh3%7;FOd6FnM=!L-O$C&dG@Lj&qx{);ZJ} zm}pPDk+?CjDsfO^K)gBra{QY3viSITzt}Ia=VMpIPK)gy+ba5>=+n`Qqo+nkMY~15 zjyxV|ip+@&k8}!uLB9ZSYa%|_?RrvuL{oJtKEl^l z+A*o*Pu&j*KE;J=+OevH^kAfE$E1?AAE40t6V-OTs@^Afdv^?`9ji(dvZ5qRl?iljzwylDr zcD<}#CoLV9s8z~}k)~ZQtJg?NM=)xYvSOrZ*URcv($e9JTBWQQY1;L&dWE#~7DBC3 zR*W?5dRe_pT6$NYRw*k+ns&XcULq~Me^9HG6(dc%URE!X_EUUBtx{HuH0^p>{e!eN zhTE00Vx(!;%jyNv(mM!8tCSTZO}k!J&y$wkL8w*Aijk&WFRSNJ8>1pctx{HuH0^p> zJximdHzsP8vSOrZ*URefq@{NdYL&8Lq-od7>KW3~`yI7PSuxVI>t*#cYLnjiRw*k+ zns&Xco+7RH>7bMqBTais{n&ewCV>uhoP?zOY05~`?x@-)NK5Z`)FxytBTai;)&7mN z^nOQeOx7~ev`1C#VsHa7zwp-03X`6R#%Sv!?-qGz=`?^CI(6+QRgn+#BgQjhXI)eMr=g^xIU$(_1D{SLd{&g=S zP1_<>`xnyEn-jIC$y!F5wuP$p&!nX{Cu$eST1J|-`KtCl($bp~wew^xBTd_>s`g&e z(wh^tb7d_fP1`A|_8!vGn-jGs%UVX7wv$xt-K3>ACu--&T1J|-6IJb9q@}kpYEO{0 zj5KYtRqdUq&0L3%cwRVOh3}v-&>J4daGX2_M!M_&C;0vUo`(DXothh!+amjQ_7VF1 zzv0>H%omxzX3ovb$n27drr%26l3tZQINd+hO!xm^mKvYxm;5F9eDaFqY03TR@Bg2M zzyF`-jCOh?zEAuuu{m)y6h1Y)Pk77FccG_37sLJkM~AvqeP8v2UGnFP7*V*q z3_PVY^uZNlX@xtWh#7@vwf{b)Ffd=lgp#GbQCeD%4=7?p2~t0pFJeH+(q1SX=)TIY3xO{Rt|$ajout!bB&iIb*XO{Rv< zD9qBiAGh$-WNPR{FrCp6R+FirBf)f@Mp#Xzh7JVNc^Y9%CUKvup_*Vi`y#AXQ$vp6 z+wl=$TTOwNo*S|R-)3RVCV3bcf^W63nobRAf^V@frju+=5qz_S)p}}35`2?|v7ThJ zL-36jRs*UbLGTS0#(u1*hgw+8sD=oKF{5O27-8=o z-|cEiHG~M>(H%y<9ZL$$!KVPaLn!H^RRh|wrG$?)KbUXFjuNHyMLe%;?G9i-JC;ZdyK4Qq-j4|)wYm!q1DciwTv|FN2%Io(k`&tBV{ckP5Tk5_7Bp|x7x#H zEhF>ohn2K}Z-x5b@u=-E3j|9tsV?obu}nPBfz zZi)*3M6mZMcZdrANU--QH(7;$AlUnqJ6MJPL$LQLcaREyPq6nXH%W!RLpXK@KEiUS z{Xl?)^8+JI`$SdyE!R$vwTv|F<5lf9sP%Rz+Q-RSMw<4qs`hKr+8v7aF|wACru_g_ z`)~hfP5b^T{FQ$UrhPvZ{*qwttiG>2U`Cqu(W>@eq%ED*P5VA7`~|_KbG2z7rNW;R zTsi}r_K_<58NsFVs%hU_g+C>@bhb3@BUJbkf=lN>)4rDqe@yT^e2iAP>;I3cs^6-< zwR&y!)ao6oL%Fwex8>I5rsa0bg|lyFZ_BREPR{nv{E>Mfb7f{x=73DE^bhH0(wC&? zrbni`rM^i$k-9K7H#I8NCHe2|SD@y-w@m-r-cf8w0PF^Sz0 z$@u&6d*WxskBILGzX13a`~tw5*wk1)T8zFHy(zjPdT?}Gx&z>~a0kE%a0kF&;SPXT zh8Msu0QP_#0K5a>?9k9qrs^ZR{#XC6DeB!d6=xxKpF0<(sCO5&T)kbl%=cK> zc30quzTpsp?YXchC z(s5o>!~_fe2ybAdDcS%F)*e9G(mSH2hy^BS8EJ}Yel_e*+R}Tcril3^Xc=jWYI`;8 zN7~ZIKur_gfc ztX8frPMV@xT@9m9=-mgUC|4IJO;N3`hLNPr+R@6@#Yt0CtE*ve(q^m{t4nyv7-@=X zay5(~E$#E*ksv1*CrwdJu7)jYt0UMMM=;nOfhq2!ig!ZHndiba#T`q-g;7*o z)NWv;DejnpR=d5dWuz$%RJA*h_7tl%vX+sim{+yiqcBTrV%Q}wZl}Tn38s}U z!Zj*v5Y8ps0h{6g70x48U1#C`D!d(GcF9=WR)uR2PF1_+n&LJ93#U;==8IdGw81B* z0eGMda;^DdKb7r|>~1bQpxC!Gf`C)5AIul~sM2jwx~rA;mZg3$U+kqyw?Qer;b8Z= zxRosRgZW}lRk}4wceW$#Axr&WzPP0-?T1o&U*br+%Thm>FLqO;LCuj)v?1@$}p2+taJlQ_=%c zh183wYf_6+V^ckoKO~<>UX+}Z909BUFP!_G^PCyZZt&Ot? z^l9k6&_?+6znw$j|M}~G@L5~C2D3+aubhW3XNTGDi)w1uVDyNW8XC?e`goTHF@}#I zW+;f&ou-C!NNi7vwQDea1TjNFtZp4oK51BJTWGaAZ93t zZ2<*;Ol~0YiJll6NDwm=#5RF~#p_9Yf+xlZ62uGzv2CDW@mVB3))Qj|31WtV7$ZnN z+|DGiy<%Rw21`f~GZe%aLb7-riD}0RlDu{e){r1(D2OqJWbs-O(}ov`v4{jQLqTkN zD0q%*QEV4zKy4yu^Sr9-)2s%0@lL7Y>?R4yIL{gRc%3FqhJrY%iYco*l=~$jix~>yuqvh_xI?*L zLb8~lAg)ry$I%}8}Wo}p@KZoQxPDXx;WjLa8TmbAfZ_gT2i+tWS&d7cVS zBlyoQ?5_Wxtg3#k`o`+htH)RO&Ha@7d+rkW{{P5am+Y6>hqHCrW3z*^sm%MCyEE%D z(=#SrOuw4GA-ya;G2JKiOX``_WpMR>pVSs`_5Yz{LvmJfk7UyM(7DSw%bDhE4}bmt zdgA)T^2CHhzxdDbXXBT`-Tz0#JH$SX-4|OQn;tXK*62&oKSdWt_l<4|-~N9*vMF*x zWN0K8{y2P3_{{Ls@OGj0(5s9jh|rgqbSZi=Z-jETWbR* z`26t*o)d<<@POJ{+b;nddVUfHq36rPXpEKiw1CEZkt^yUq~lM!qX1ejmuqyAiRt(zF~*G`W+;d;ZRBabj>PmYk> zwIrr@4T&*u1TjNFtmn-&B&IhQiLq}4F+)MD*Ui-^?${q6Nqnj-W+;f~s#8Hp+HqS? ze2Oe)D2Pv1#aGdYxADX$$zq0rc#bN*lEhnk;uB>tLqU9kD!zim{XFq(S2c_()mIP!J!XiZ3GZub%jDSyLsju+5-;*bJVh2W6vT(9;wBQG=7}fEVuphFU{$<{#I(msr_F<8F+)K-NfkGe zc%e7q17$HoK|E0vH;|Y%Z)wC6WHCcQJYE&olbAMdNjy##GZe&QRdF4OY4et1XpBmq zPc-co(l8E?hrv)7#{R1KJQB~wNB8^x)8LQkVf}wy^^)o_)je}Rtox!ze0zy8-R@iYAT-=&FpiBXBJ@vq{K#Ove7#dnXVV;{usiJcicEH*G! z1>gO@F1jQ-CfXzNZRF8NLu6KD5d8Mvd*R#RxBsSu^PxiMmC!YzrJ=E*-c>)8|MnmE z0buo^Hw>La?QQFT);DSB#OR#q&JHYsFk^%;VJL|8JsLVOI_o_#W{eGBAzzx0gx57CR==Lc@g7}@!aJy=VSSbm^=LH1>?_{)%YtR9UMh&6h;e zH6|K2CXMX=7twU#2v4lFST({y!cZ7ACXFoqg2Z&;h{RYmf|#Ko#-x$OpQAW&5I&L^ zt40tr6vUV`viLI+Px8cAHG-I-AjYJT#h;S+Ku?TSBZwIaVoVxY{0WICdSa{^LCjDP zW75dtk4Zei6Jyl~VupeklSUSQMB?$D7^_AQGZe&_G_v?Z5|8u5ST%x}p&-Vjk;Na7 zc&sPJsu9Et1+ktq?~{0pCsvY%p&-_i<~N6b(V@2gJ5yCmM<6OWd~3yA*%Qd5|8x6d&pvjf_QgT{5pyE_QZo_F+)K-NEN?E;t`&B zH(AV35bvsrUqxlCoD93D^eafG>)c_0duNq?ndo|t-btljBD%q&cU0*Yk&7Mg(hvbV z04<#37z%^lUKRg?#K(E!fwGvPAU3M_1rnd>iSx3Up&;H)6+d4gu93wI1@Qn?{9J{& zzbs}bh__Y6&yx6PcPfD1My3Dmr{SgES{?>N;Yw=1k~sKE>N9vHbxUs)ebrGsja>B# zkM5(=PZ7P`qkF6LlSH5H(Y;jq38I&|w0r&k&8q5u!u9`^)dyB@1K#Z=65r?zLrt8< zZHd0#qcL%0_clb|;L&R3G;WQY_w!1%Yvsz}C_F{AavJ-Q_+fV#Fn4n0a1_L9G7m z4M#z&_Dy3K5?}0z<-Xx4h}FJn+=9dxd1AS5I0|C5ZyGz3_(D%C_YFrutoBV~ClX)a ziLq~lqk^Fz#<-C`7CMr6vnR&B5yT7yv068c9Z1~diLq`3F+)MDrcGlti8py-OdCPW zP!MmWPDPHyjh?utEM_Q(d#K_piA$>%_{`f<7BdvY-Bodh#H9reh`Y&RhJv`ODo&HQ zv?>E}7g@|u5O1N1QzSkgA1R$W%VLItxRWYQqO$ylVQV|8v_mvaHf|5E?V!>LqG<++ zu2$(d(KIbY=TtgIG(A_Mvnm}$+Bp{=Y5Foi3&%b~;VGt7afHO@dE%5TW+;f0syIyI zb3Cylix~>ygenf9GB(Q-$7L}?K^#-XRV1G2iKDWZp&*WE;)WtBosFJ2EQ&b_;*ctC zC-DYPTqTPc3hU(6s<@5BXIpXY8M2t6AYP@4TS;76%)$bEr7UJBh*zlM0*OoOUJx&r z#S8`U>8iMe#HA%Nh?mJ?hJtvhDsCq65`3g9IZI?QLqWV)75_ovrJi_^EM};?{(skg z|NlVv{{OG={r}71`~Rcq`~MGQ&&?i_-8JiE-pkyTS(}-b$*0@XucWU}FHKKK_fGws zdOCG!>J+&9U+3gk$p@3?C1)mgOFGWG&Ye!JGu7EH(Uy2Qab03bVtk@k{HOR+@k`<- z$4ACH#lDO^5UYzF6B`^$MBk6z5nUHO6xRQR$SaX+B1WquEW9+POl6FvATKFIEBO? z+1Fwn7LFihD2Uaao5n*>>HNbJW8ny5hJqOLM()DNB&HoyJS^8?;Rs@ef*A8g79ULF z7rhZ<;Rs@ef*A8g79WI4?}vkG*J0rZVupek^F|g=q7gsujTj3@5Hl3Sm^ZTcKoZkN zC(SVyjv!_zi1oagNK;YkjTrMr5HmDiyUw;v;QnUg1l-@;+w}r$(Dt+NiCbk(IkG{ zir30z!%+~cWz)D1i68UCa@lYc#A?|zjw11+o>(p$j)GV%o5qnOe#8^YWy4Vrt7X$j z=ZTmXd28je;V6jJvT3Aqit~^+V!3QM3gXk$6Y^d(6%Tvjh4Oimp&(wMiieZ<0Z%+% z7BdvY^HlMkB!18p1AVGW4K5X%3_9sc$O+2 zMB+O=@l09FP!J!ZigzRNU7q-8SdMso)PAXM$#0X7!r%WN4}brkfxrL1m;U}g4}bsv3jF>5(!|6>-}rCw z=i*nz7sCDjdd7Z?Jr%n&Ha9jp);0QV^s(p#(G#O1q8%e&MjnK}05}%z0FViP8vb+m z-0+O>pl~AeLFlf~`p{wU4S+BV_<#H}pmrUG5FV5P@8@;+&Zi}Ev7(uvj3qDP( zMVOYoc$!#;86;@^Bxo^#WNj^KY0*nsj37blCqat=Bx~28mX^Gv#RL+xeiF2pKeBc; zYH7hsS_~jT>nA~r@gr-`KrJnINsIX-X#FH;ZTbYiWUEk1i(S&%@(DN+{3K{?_ylWL zqPFxw1V@7Ho&c?%1g*`UVC@Rjj(6XWptaQ#p!JiWwb2u-U5;8>KGP)F<_XaHNzmHl z3D%yDT3S4l))r5I)=z@g22Zed8ER?iOj_GJ0a`x^TAMq;+NG$ag)?bw?F4B3Bxr5y z1Z$U|mX^(=wXGAN^^>5rsS~VSj9OY>lh&3_fYwifRu7#;sHN34X_e6Nlc2Ss6Fl0} zP)loT(%Q}m7_FZKt<9WZ?LySj%9^xTIl?)?PlDDKPOx?XYH3|fS_~XP>nA~raU-9> z=A)KY)uhF|5ww01_ChdiP#e5CJr7R@9jN$dlLhMry+BvSDMLYwX(NkIrSr^G_iO`O zy;wJbn4uuXw2{SgQJD+7VxaZ9IfdvdkH)%@-6ta#JISSC&=@$vpcx9o7^jL!nJJxn zK|EF#GZe&QRPh`ftMh_4;sazcLqWX1Dn5~>;%HY4^nNORf}e)xx34@5hJtvsDxQsE z=OcF*Al^q7GZe(5RPpg7{@4?bl*J4M@!qQVI1+#8iATs{hJtu6ReUUoKk&rEWidlR zyr(LjMdJ58@i1A;P!JDQ#WP9#t|uNMix~>yJyh{AB!15m?=FiO3gW@4n2vYn9Zx(+ z7BdvYyQ$(CG~%~C@vgF%p&;Hx6(2?7Pd)L@vY4SD-boc7N#ajD@s6^Xp&;Ht6(2$3 ze|qBWWidlRJWv%MPU1H_v600L1#w;#ABM`yZB#LRpgXU5;;m&dLvj6o82p%C_3PC)!}tFuSNG2qaxdks%Pq}K z%=OLwmVGXJRd!)^Otxp{$IMfiOEYsbqcdI8-=-f+UywdAJtEyP^=0ZoxC6kksiCP% z^3&v>ljkO9BnKrE&IfP@!1c~y&Q4A^@pj@?_yvF|2@`LNzaGCKzA`>3-aqz7?4{V% zv8AzbvA)rtqt8VzhkF3-7wsAOKJrxLqR8CH$Vk`lzu`9kHib`w-vH}AX#FH;v880~bzF-zC20L5XtAVZ?X_Hs zEhT9EBxtdtWbHMmrP!yJ3`K>q*vLfm&J^(P*)s1g)P0Ew+=ay_{>Y zo&>F*1TB`6ti24iwA!N4Vmk?1KM7jwCRuwa*J3#dT0aR|tR`7|32JExN2A4V61092 zwAf6t_F}HZY7(@560}%Mvi2g>(z=jF+fUZ|NznFHwHI=2A6e@sLEBr^UVvI!Y|?0Z z$yz@N+O1UWX0GiiYyBi>d#Ktb)Y1x;M!Th~^^>6Ou4*@-me#MN?IvseBxt*;+D5MJ zB5VC5Xtz+c4XC9>F^#sfto4(i?WAh!QCr$Af=}L#ver+6wu7pzLoF?cX|&a{)=z>q zr)tkfEiH#ho0YYG60{jrdmd_OF-+RDto4(iO{v;*QA{f;OybH=vf5z@!byT0aTeDpk84 zwWZB(xYV{<*7`}f2ylj~Jqxw;C2<_>x>d5)Pl9%(sy!36Q`|K@XjjNuKMC69s@8w? z+g<;^P*wdVtp8WT`hPoE|Gx_B|K+g$-v-wI|A6)XVp#w8hV}p7Vf{ZJ*8f|=`u_=7 z|DO!&|1Dts{|K!AXT$ox8rJ`Rh4ueTSpTPB{eLg4|BrMF)p&+(76)b*-#2Y-Z?Wq7ULqTkVDp>qBiM>s>vusfXh#3lE zn^eK#w@7@JH)7jV0b+)N*hW>b_)QX@>4|Ms1&A36Vw+XL;(wBOohP2%w z^}u?TYn8zAlc3cD>+h&t=}m$XSbh?;dSE?++7(uNrV?0w61q(ftfx`C+|w$7JS?ec3J4@BxkJ{2V=3%rmWv!nC?J=tMFI;=Hto4(iouO*~jM|0Xk#Ll( z^^>4IQq|tawMWQWKMC5yRqef~UEq!OFj?y-K|5X5-ov%iWUZeB?Nn8JH)`j5qdipC z`bp4EQMGq*?IE((Pr85q|Gf0~|6jxJ|24wz{|$lP|N97j|8G6~{@)Jp`+sl1@BiWb z|F(wT|9cL8|8GA0{$Drv{lCiZ{~zvb?}Xs@|89cc|C{9f{@=X#sCeg?|Neh(!TtZv zh#nN}ANf7By=M&i;}K|pLfC_v0m5Ze$67Dq{3dcy;a zB_z*Agy_;$JQxPnkTA^*1u?deEDn>nbp07<+e5*F4iR0t^a;bTK@>0>39CTxm=+ad}7zSoh@N94t#27`gxShnMuOt9%!zggjjcr7iE?dJeY#IIc zY;Y9BHjRSCtt2j8R|K(bqX02OL2TnFSX>}+>7p9YSV!_~v=CjoUOTpq_@B_W-0@UN50GwrODL~9n5Zhb|7XMr!w!IV}W+;el zFa?W$BJpN##I~3M#0&+oO{QS+j}>CuOaWqsg4jk=u=ocOH+dtr)f6CRD2OMk$IyQ& z#0Sd#S8`UAXWS^iR(P^ZnBu6Al_9Ke?;Q*J@GEGn4uuv zSrvas;`2Q5PO_MxAl^|Ge?a1MJ@F2*n4uuvUKO(|;kf>vTJ@^?_y4EE{r~&se#$+S zyD)cRZm(Q*_Vest;QoI{!TtZDnKv`HW>#e;WwuTKmVP09MS5X+-*ng1H*ocTQ|dUl z`kzjIkh~{(X7aG)z+{#4nsc4A#2MrCNPL@kG|`Zll^B#r#@~zI6<-^l63@f6{}*G| z#1_T&k9CiJ9ep@j7df<;`06iMv54jn$ zX2*KW7U6|tC=3IeMHY`Fv9}6euV%}py@~b~%j+>)WcLW9W9Q%_-sE__S}vRRs-Ur4 zWcP5QOJD5(w;C^-_N<^WUS#($qD$A@!L9borlA!y_KWNuLUj2cQ4?m<9z>Ux<8X?S z6NaNOXfi^NxW;_kATp&;(2ink*1<=(_~Rq38Y zU*-*?i#!a5!Z5Z_#XU%TsW*(yD!nDqmw3bIBoBk3FpQ3>xI2k2_QV}zF+)LIt%|#m z_##i7lf?`LaaI*~CGmxxI3tT03gWaX?t;ort6VYADV5%W=#?IwRO!w{m%cs*Zbzj% z5ncKY8_)@rrcbm^r7wHINk0y>@M*$O5XV$;2O36coeFeRrK^c9t+ikn5qTI4#r6N8 zRgahN|5slB56fk;A7<~$uFX!#4#@nGc|LP_=G4r{OsDkc>A$4UP9L7$KGmLjC3Q_| zQELBG_vF{fhm&>5W0Jcjqt2VoP0n&>g3~+kL*j|V=EUs8kVGo}e*BL38u;e_wz1!0 z&%(X`PKk|(b%=f%y)U{xIz4J4t&x`^e~K)O>Nu}Ld!zq zLR(dR4?|`DnA#0`NzlpP{-7JsdP&e3-6?%w0IinoGy+Ui-6d zFcORj*-a-@AFcNUolwg^!@2=`LUz+xGF^`c7%mz%=t)6m$#iM^6=*#v=+x(wJ{f_= zq>x8K=QF4DaR;r3|MxnLX z#=}VT)HsXi(g!!tm>RO1c37OUTd$3E6>h8z*}ax%dcV>6L=TQyqUrrcGzN$4UQ^-L zn`3o_TW=298FJ{oOe4{ogG$Ds_cGCXb5P0n+|=_TYYk0hkhiz`M_rP35iPU$)m#MNq*K8@U^i$_48 zq0$S9F1uH$^nwcaN|l~ZG@ak@wOqeKrRNb%=T4%Rt2Av&JLP@b(^Z!AX)1j}1-($E={tV* z7vf;t3sjoE1Lx2u1dU|AN*{+Kap=>B=y@tlJI%h4oT}3Fr83`0=BhN!oo^(ksPr*3 z?(+Wr$try`(eyb;&+;Udo+-K7EKjQKgS0nm&DqK0&3AAeugXh@P#| zhZ9|%ljBwTFrv$Ia-2#}C%QZ*$Ex%+qRVqKOQok0U7nMfDt#!?0pKLUP zN2~N9MAIi5(KA$fa)tXSl|Hz_eWXesL^OSB;&=Mi9|5$mTfk5_JshrzCy|&wGD&=x zEM};?{{Ila|9@TelIro*z3BS?CApL7`u``{d$VU{r)Be*LgvNHRhb3w*Z*D8U#1^U z*QJk1@0yOL-b~$;TArGa>Ye-{`9yMaa&~eE{O$ky&K=GgXR@s|37 z(NB0I(YxXUqW|X6dRM$(;nut2y$ZM974H)LxHl5LE8ZdcF^|@};_V8z-W6|Exb?1h zljuj?k-!0nT_GHR421(wkBWbi_z_QxQ6Y#K3Szw|-tdnYXuT+2_YVVTy(nHoy8JtE z8?Y#ZK{FJ@dQQArA;z2##0&+o-V(3S^Lq#%>2#yF#LGlK?9qBlyhQW^9<8^;i$p)@ z(Rxe#gXr?Ou_ffS_X|Xq$F1kY^F)`&jX5E^pCh_F?&&K1EYW|(N1E?xD*bn&@Av4b zD*X)6_j&Z8Dor0TPI)9#RGK~sobpHxQEB=laLOZ@tkQJ0wm(n@N9@5WO=oK#eUM7i z88uc)LvT-0X*#3&=mS-n&U((>-h59~X*!iTcY5>$m8N6Wxyz%+t2Dh2d?OjB(sZo) zMlx2V>3!fE$rzQU<0-bt8}|V!O~;du-e0Bvg4Xg6uWi^5XyGKtPsu%?w!Fv3kNqt;cy+KifJn1rO!SnwB2MeLqWW&DyCN?Uit_I@h-BMp&;H_6<>!h zo}CJycT(wVi7tP(@2Jw(5M3IyyZ(R8uK&kW_sD&ldo;*eO^r?UOn#SqEZLYmHaQsX{r`@0tFy|P zVzB|q${oQ*{heBd+D=L9Dh!)9xf*>J9_M*b;)6p&(X6qG>RRX#*YifzHN| z5X1}xv04#LgGhXmH)5;^LCjDPs|nGx8!D4uxMHByglO88Xxbs5*H2A|rd^QE?d-YL zglHlzx06S!3DHDcZby$+6QYT@+zuYCCPWi)xotdJO^BxLk;~B|&54>2O#_LhN1`zy z#I$cRMAIYDYDF~ViQWz$iB>D3iMU*iN2?XlL|krwN2?XlL|m@FN2?XlL|krLk5((9 ziMZU>9<5eH6TOPLejcq>L=#yvlRR3jh$gaD&-7@uBAWUlm!o$Oy*g?|H1$E+{=yf$ zFV%`@>P<9lYmr;6h^Agd(?%81YDF|{Mf3;wNVHlJO+AUGEi} zCDG+^V@SyE?nIZzt+qr{H=^IiM;bS_gzWB0^t&Fd=0sB$qTlmqH7A<3Ai6vfH7A-n z6I~w34(hl&Rg7eNmF`INJNQU*GEk*E5dF4C8W!pEr87i- z;?VJD;NVZXFhv+vvdTW(VRJi-8biBgdSEXY}+aCghb5$Re zj#kjURXRc=p-oUa279S=nCMsWk?5^dIz;qq9^F%=tB5X*1lq0#&_aSS6eeU#O}wc{ z;?kf&++7rN6vW+Bal8Ndfw-$IW+;fesNy#NQ~WpJh^|elo7f|;pfAbhZlrLhr5Tq z4m}oX49yM=31wlp|EK?$+Kqa>97~hY;7)W+?MAE@;hf4)5bNnOi^Pqd7}G@%GZe&n zw@~fdFKEJuv0DT&LqV)Z%P|#Gfzcv}846;(SdJ!foi`O&EP|M!Al7qb28qx2#F#6B zn4uunTji*V5o40lJwFVDh=F-Qb4LqV+8NYg2M@m+V(^VZ@jsf|#KoRy(BWz>2BB4iUr*1#uWq`JFehVk$zin4uu9QpFQU ze72qAvscSvhQhMo3{^ay#AkZqRkE0&AYQ48$B}rwCte|o84BX%s(37k*Lvd9WidlR zyi663A#trIUMh_#3!oakt8l36(`7IhJtvuD&CvK%khz}*&Q#784BX#RPhKBpYDl|mBkDN@hnxm zSH*~D%3_9s_!w0@ykf*h%VLItc!nz8lf=ussW?g&GZe%}s^VcJUgC+5ki`rI@!_g? zD2bPP;=^PyLqR-U6%QeCX)3(+|36{?y&xU4DSCw8}9#~ zh5P^C2lxL!BC|s#4EO)P8Sejo5ZwR&cewxmm2m(6{owxp-@^U>o07*Thb1%4C-Cck zXFG?(um6P-Z^HfmSHb=Nw~hZ6e*xD23t|1gC9MA+hxPvnu>Q}%`v1?c{y!4d{}EXK z-}3)({eOnMiLqUvnBexJOcYR_E z96`)bXd$c{SxgI?vUno~jv!_zh_P;DF)hV>VhkKX%uo~KID(j=AjZ0p z#T)riu@M7D5Hl3SSU0kmO4E)QXgzSK{Vfflt^^K4L97Q3g@RA41P((%tOw3n6%(ff z4nsk#2M#rpZ^TOAFcidk;H;yw;Z^uZt1KmO7z$!NaHyH=4JF{kQv!#fAl3tin#tbR z0>nz-Fcidk;7~L9Myv!5LqV(u4mFd#qXmpu2^@xkSPz^t=*7F-d-0UOVJL|8z*&V# z--wmKVJL|8z*$)_VkK}G3SvEQR*?8IZz`0)VJL|8z@aX+HvxecPYE1`f>;k6>QZ|L z5D+VY!%z_GfkSEI6Hk-R-V6otRQ2plF=p>V0wX?D7BdvYQ&chKqfdN@EM_Q(C#&Mc zbW~j89Tf-5VuphFAXU7G#20(wNwS!sAU;qPpH?yAiL#iXAfBL#7gmgTyewuYh{vho z1th-6n~Jfrn4usZql)K~_(D&7fGlPxi1$~;^D0KXpDbo5i1$^+r&f%3v@B*Qi1$&& zb4h%GHx;8~F+)K-QWc*<;?16TZ&}Px5RXvBCs&MkFImh`5D!#Jj8F6DmeLSQaxB#Di4v?1~ZZCW{#g;$2no z@g#2areYUa%uo>Ttcs5#F)dLkV|S9p40YH4uaxiq7qtG@fB)~9)WxZ}sl8KMB>$Cs zD0zPJ=;WYe+Rk)m@|Typ&-VVk;RYt#X##h^N62@ z=cnWhLqV+P%)=F8C1)54Vm)Ubst_wV!%z_GIrCtJSjicNf>_U)2P(u$&M*|jdd~c{ zLagKrLqV+P%>8~b(3msw5%(8A4aX1`jc_P46vUV_viQ#xVk{a#%uoqT>qpN5H3iiV*e){EwDzZhsN8hOxnRnU6W-07!b&`Q)W6o#Qk z%^ekDC2AN7Vm)eZuMjIy!%z_GQFEJL3^YcKJk7WIX_z?d8sVU0D2Op?WbrM2G0=L~ z-0Y`e7)sYL6vTSh+*Bb}x`v@3*1P6LzZhuj8hJKu@YC@8c9f@?p&;Ht6<=Q=-d+|n z6vP8n@pXPN&_<=N_0#bD^71ek3gYcl@ii6V8d=Ox5D!qrS67Jp%VLItcw1HcC%+iz zZB+WI3VLgmzS2*_H20GS%}^LdUsZfXg}9F_W+;eztK!Qm#JyxOLqWWiDy9uZTg)&O zJ!LUNLEJ+XUs^HZEoCu7LEK#x(`J`%#NA{uLqXhC71L&yPuxWoGZe&IsAAeWvSOe+ zt2FHgSsGrEPVz7q3gV8cn08lu;tsNyp&+hS#k9NP6X#?xLqVKX#k5!96K7;GLqVKY z#k5!96Q^V`LqVKW#kBJGi5*$YP!K0naYM!1DK3i{>Rtc;-{1d#KXZ3xU1oa5q>JfS z(>J7-r6;EQq<%>~le!Gn|NFrD|KG6wZ%EEc?vYG7A3AqAXF1cH?Gx>Z*Av$#mM118 z`o({S@Bd#4-~S&4-~ay#zW-kj-~ZnozW@ILeE!(4iG!8>StT)a# z6=G%YhM^$Fz>#z4>k2V8j!>Np1u+JWEdFw)tHiD@-JVhkK%ju{GKy>31yG4(x(mAYXl zi1oVpjKtLUBv$H%p&-`l=F^H1D|N$A5bJgGNyUhjx?w1Y^}6|(#I$&!sZi>Mp&-`l z<|7i*8iT}2-7plydfj|TVp^Jc4=Sbt>qa<^846-d8~G&ke#KN^-3Vfa zf*8|A7Qa_96<9Zdn4uuXw2{T{qS)Tm2hJ5(H-eaw{GZe&_ zHnR9_5qZbW6vUV|viMCBm!~2oix~>ys4D&^iOW+F zk;M!Jaaa|@;XitTSS!H5^j zVupfvkt%+X#P#?{N5yHfn4utEsEYqVVp?60c!4ZtD2V5);ulctTQtp+#S8`UsjB#S zzZmGbD*c?FhF9bic^C`@@yV+A*$VMVvY4SDo}-HYULihF7BdvYC#d3QD#Wv8F+)Lo zyefXWLVTPoW+;e{RmD$Lh-b-ShJtveDt@v;e2gq+D2R_%#ZOd-XUJlPg7_#^{5QYY zyZ-;b*Z&{E`hPvF|961({~NIWU-3WJ|7+p;e;%&?zmm8nu{1F@(KG%-{E7HQ@i}n) zzeDWP*!{7Mu_IzT$HLJ!qBloZL=TE?9r-=-T;wvi{=d)v?e+ijI0|C5Yc}WnVxX~W`aE&6x_Z+%+5p zvD!78(|$3~*fsL=OZjPdewa4G^J6H8v1?>;vOkAfBX(3w|-s2dZ?7pN4~TqC5H-EM_Q($Ef1pE5rxLVupfve^vZjg?K+%%uo>TtBQZE5RaC{3|(28wvOS`!f4*wk~^Y zc5pV8k+1*r@Bhz&@Bb&^`~P=2YvKBT9tM3*Z&`c z>;E(1`o9C$|L=tB|5Kv_BW-Z~|2nw-KR(hc{8RX;@Fn4s!z06;LZ62o`2To2@A$fk zqwnkXeq|fvg26V%y{gzMV1s2_mV1#UH;OUt26xjuwKKY zHi{I$d}=e5z>f+rs4=xM=VOheE_NJdH->y#kpdV~8#8zcfr}l7*^L3LNCAwgjTziP z;9|#Nc4Gi5QUGIWV+KzqaIxdq>}KaAQa_BJ^!&`(jVgsO*z9KKL;^qLfz8>CDg`i` z-R!I<@OL~gW;ce8Q=|aK)W+O#69`=F3e0W{U_}aGOl{2IlL%bw3e0W{U_}aGOl{2I z6Sc0u?8X3AqyWa$#ta^hVE2!C!K}vY#sF5N0LIkD3?8R}F}pE<6)Au*wK0QFAn-Z( zN#hu^8v|I80vJ;pGx&H7jM4icK`GmjEYJ#Sdjv_f(2J<;Bqrqkpg%$3$7sW zR{W%yH_8lFqyQetg3C4V2s2ob0(dwJ9!=n{dJzvZgB2-&hqB;NG8oiDSoKI*4Uc-T zISfS#;6W^Sga#gH1}jnk4`9K=HSlp}up$L;e-=DU10QP!D^dXWW5Gi;a9=Z6kpj36 z3m&3@k1>N4DS(e=!Gkq$Z!=ht0{AEvJV*ogGJ_QqWJJIsWE^RDS-KmW*dQv50A-c6e)oD zjE1tyWbxrK8I2+ZFrU$Ep@^ID6aTu(wV2VEJ8mK363HKFrVNo zLvXC%bp?~)C{h6P3C`&nIBo7@MGD{)`|y?$_);(8q#3M80i0mLr)l808LUVF9Am+! zA~^XyFXE^ftVjVIVZoGj7D!Y&U}yDS$6z!HWp|vbA&>}v^3|6E7 zKAQ!%5cnytE4G=ziWIis(mV-#h8e6##rgjg_4oh2pWmB56W;%K zgZKZB!2AEx;r)LC-v8eP-~Vrc@Be=W-~Yc2zW+ZRzW@IbeE$hi8AS?UK9{)@ z!CihMhB&A(moX=S-zN3@o|;c*zD4R^dumK)%)JBm4m``o?5xCgLOlqS@0nDd1dkI|ZV_^n8Gh0gDwEnM zQULR*&29p}>w%fnMv(%TPi=M)_@^G2No^DmB7WWU{V`J3Sd69*-7AHS1_rK zA_Xv?+T5gd1(Vt+QUEVwm#iBJ{0@H7s5src7AjHzFJ-|y2>cTde3}`oNCA8*3%)^% z_!Ki(kplQ+7JR)H@e(swkpg%z3%-uPPVxc^{US41kpg%j3%-`Xzrs&?cni#6MGD{+ z7JQ8sakCk$NC7;b1z)X2+++qTQUK3m!CxitkG-y#YX&P)0MB8;R}uJ44?NopR-^!) z#e%QYBA#gmD^dW@V8LI}BA#vrD^dVYW5HJ-I7Xi|+@_kriWI<&EcnY5@f-L_;3;OX zA_Z^*3;q&;f8>EDo56|{z>`?;(`+qOO@BeLr-~a0YzyJ3H{Qloc`2D{u{Qlql z@cVyDk|W^n|Gfc!|L+3$`+uh2{}c891*rcQ=l@&b{67`y|Nk0(I*jN4@!?Xa|9=qb z|4$8#4n<4eQjh)Z{~MgIFt0J6Rw&1eZNg5&S$7?#HiieRNCAv_jTuadl?w(npW0A< z=c*wLCbdzd0OnI0O2Z^DliDa!0Q0F0WlIv6No^Dap4)*`MlgB2-&D_QVU8o0s?R-^zfXTeWu;L&EVA_ed$7W{+;9%%+EQUH%& z!H;X;;byQR1@JHy{9O$^)C^Xn03O1EAJf2t&0s|e;6W_-Q4KuM3|6E79>9Vh(ZI)< z!HN{X{aNtC8u(ZMSi0=PR1zE1;}nZb$_z(=y+do}P8X0Rd!a5olwj|T2) z1}jnkcVWSIBRD#WK1;;;|6%d||NPR~rTy}s@K9HY>w1y^3qz0>SDTey*YVNr4R<2ytL*uusL~A zr2uA=m)4vHHYYEt6u@lq(wddQpvL6I+|3zT4PyiI7sJ?4qyWa`#SBi%U{JI9OKVC~ zWBy`hCp9&j!n7u2H8jzj!l+URnoVI^;~LnU!l+UJvnfn#Oaq%!7*z^jHic=8%3x4q z3S;i(h^A(FdsuVf|6B#r3e=-=< zd@l33tcEa{Tt<-sn9pTC)4)tFqeubF=Q97*z)UWqNCC{}GM~y|P-8A*?&kk!YCfI$ zx27&-+5ghic~<>TSq+ac2WrDeQl!wtEDQcb27@}os{f&>)2#aMvKoR;nS)lO5Jr*( ze=LJRonX};$!Z8AZVp3{0yxHk|0aV$9c9&jmDLbN#2khq1#p-Jf2e^&X0Rd!a0v_k ziwuTr{t{OGXITxGc^8|*P^199hz0*i18+Bj6)Au(WWgWEU{GJcs{bgfp?&9@!%(CE zK92?eK?Z~RTvq*iSq)*FV-7=+0{Cne{5u&8>TRt0x0-q@tNx9whM>2YgI1&v#%31$ zz6Rc81}jnkZ)Cy0*1#LgU_}bx^(^>T8u%9U`%k#9XDPBV~%40D^dWn2~O)c4Qx(uR4IVj1gG@`84PMnaLnyHURJ{s!5qiX zK1B-Y5S!q%)~Vp@%?XYw1u&c7wARXCP-B8)ZeNY8hCC8;97FpQDS+7or?pxGn-d&W z3Sc(DX&ozrLCq#Otz%?0w9lO2s8Rs42~KO33AYgrP_QjMfCgS<1}jnkFJ!^TY2XEBup$L;3k&YAft$@>MGD~gEcjRr+++qTQUK3m z!TmJwTr*ga0(cG!?yG@ko56|{z_VCz9}PUy3|6E7p232T(ZJKqU_}bxX)O3?4LsEh zR-^!KWWl{P@Dwvxkpj4Z1s|n>C!4{F6u^^Ma4!u!(F|6k0Ip}jJvHzIGgy%V_#_tG zLj#{^1}joL|1T(czy0_B@%R75_y4bk@BdfA_y6C?e#?9R|1!P*pA7H+|CD|_eSLaG zx;mXqy_@=W>f+S=)WGDY$sb7X|DQ=MG9a(XW6cSnVdzD0+`QPF4VwG z&Z0;G%;zi@XkaF1QKSIobC&ZpFq5+=QULQg%Xu1@$ypRBfcc!|TmuC# zWHp2_(j0~&1@H(K+$@7ZJ)Bj~m(>u)Fmo7+6u?7SaFYfeVg@Tx01sxt^JFln2eIn8 zvKrbq&>V&$1@HhCJVyf`X9g=$0QYCXvt=--k7d=fWHq#}pE(Rg3gEshc%}>nbstte zLsml=$C$%VqyRpe1y7g3pzh78r)lb=SoKs{4MF!Z2dzjUjGipGQ3LldgB2-&yR+aa z8o101R;1$n|7(8V|8M{I|FHhQ1?vAlgZls5GH1i@{~ZnW|Iemd)9cdX()rZ;sRvSD zNi9x|N|hvkoNP;;pPZfSm-r;{{ltO9hQy>qS^R_ecjMQ^m&eD()3Kk$?u}g@TNE1> z{Ve*U=xtWN|KAM1|Nmd^_x}eMb}(7XJ=9CyVSfjowcIVM0gPFTVG~oN!wNevWih8i zcgbK-^I6NCvKqo*vKB=OU_NX4wgzUh7DWnRK5O}w2F9$#&~b_sz2W2%p5zJH!VJK1n zW13HhQ(-Z?(kpdWV6m!J;G%%(q2CyOpFy<&`@Lmm!X^H`? zNCAvFiW$5|27~%YR=rzR!=paJ9EKtVa5ombO9OW`gB2-&yRhI^84T)DR=rbG=UMel zvKo3LXAWACLKs;Ve4`8ob%s^%kkt@I+8l-=1#pT5-=Kk$X0Rd!aDoM2FM~lHXVurq zYG_}~9EKtVaFhjKtAQhCup$L;m<3;>fkS4nA_Z^>3%*(f-*AZ;tVrQtb1@61WIg7k z>^EG*s;`p60QPoPeWk31W8Q`4pcN^AFJQr6(ZJ`M!HN{X=ds``H1N4*up$NUIV||g z8u)B8SdjvF8w>uD3O_&S#Tk`~EYR{f%;Uc;(ipqcADbBKF2tNuQzod*f( zRjm4ZTA!?B)z52vvVv7Vhw2=?R;M0Z&Z?g!HN93R^%<=C8B#CAPf{;q)lZX}-j$R3 zbXNToQJp0UR?4NIHcVbc3Y~o#3w{#8?tv4)r<%cv6u_sj;3qWj$!4%31@ICU{I~{Q zYz8Y*054*}-_^hi&0s|e-~}xBF%8^e1}jnkH?!bJHSl~hSdjv_i3LBRf#;dQiWIB}L@csWO@cutS@Bg>M`~TzM{r^kw{(rOg{(lF& z|F4Dj|L?*3|104A|H$YU(Kn-qqZdYJMf*qo5qUAPKe9eDF>+-1kKxC{*M`psj|rzj zKXv~8Ux)AiZ^TT;e<#@0TkWVD*)(U@QL-8i?wIBnz={;kC2WqftCtK0HJjt?>M5%s z49sy1VJK1nvkA_w9vT=E90OR90+`Kic6HalnB5q_iWIe6e)l)sWFEU)4-V57{H1Yz?jsS z!BGv2d5rKN1*`tIrY>jI|B}_v8>7uZD^dt!6bt^R z3rhA>8$!%(CE9?pXQp@D~)!HN{XLs{_OWiY6Ru9YCrh$($gB2-&`?KJ`YT#qdU_}bxek}My84T*atokpSx(}=Vv#f^a zcZ@k`MG9dY&4T}=fqR?5iWI;{vEUCha4$1hk>dG(5q|&w_0l$Y|L^zv|L))a`bzoIWiZ;5V=PKzEL`8e`C z+yHEdOpf#j|0Vns`~u+G@JZorp+AHk3+)K42pu2F1^NwuL4}*##3)o2UcPa|IV-np zUAu7uUcrYRIEepe1NL6DWN6_gH!lL^rY#%Stz5os<%*@tw`>*S1NeW|3o&5bw8#f5 zD*@|fMgG|RD%MSke6X?-ux?J|kKKpZv%F|ACBj_G2P-Q9i|G*NaQ@i6Di#wW16Ec7 z7Ly?}b`N6D^rFRd$bglVfW=hEjNPqbF&Q#oWhG!S5i(X zlO2ET)hgD_b$qb060mNnt;Cq*srKqH^K42%1Xex`HesJ3dAn=qIJ_7AFQkdY)^JNd|Acz zF!!yj1Z;N}`z6Gl;YC|!#>z^-9?4=aN9-~WdxRM)D*@Y$#a^ajyPC1G60luZYyq*S zd(oDfv9c1dc@}#qVwZZ@oEa-ChZSzhI@qvZYPV}75@S~jE~qoCdW5DIEb>~=8=?yrF_ zGJ_QYV>R%FX0Rd!@C7Wmp9VhP3|6E7K92?W)xhVP!HN{X=dj>D8u)B8SdjvF z8w);018+5h6)AwXu;8OL@Mbeukpg%V3szo&Gsm5(t-K^=3mW! zJ%4U~R=!{EpSc%vH|MtGrsjHQKgvFr-IraTos{jK`E%yUOlxLM=EO|b^zYM;rf*0u zhra-rP5l}w0Ip7*mKu{vB!8Z~CwWD3adLDrocKxNTZuxVIWa8$dHjv|;rRCWocO@l zzhke)ZjGHAn;z>I{d@Gq=z-{#XhXDjEAA}2&+xX!x4&vT#*68G1K# zcc>6r5E@eQIfU%@Z&+ccn@ssG^AEg;yGO|t*tb|gxzo+2+D~Ft3Sc*#@&}9hzb|`W zH=ptWD^dWv36(!slnQ>y1G^cO4_J``*iEVY!QZ2}FLyU_}aGH?8sqKS$t#2X^x+AFv_?u$x%!wvchXPp%SU0Qk$3CuN-K5F~D=Pu(=2ZUJ@2Xf#sSKSUD*@}KQ~ub; z5POl=x0p>Cu(A@cZYJfAeN@F_B4xnJO2E2Flt1t;_rSXl{JH+k~M zKA>XV+{p(kD*@}KPX5^MAohGOS~qj@!OBX&x`~rN_I?%X=1o3WSqWG-ZSu$7huHJH zXx*&I2P-Q9>n2V9*n3s%M)P!#m4Mv>Y^R>P36187nIRdkTwfQ?VzTv9c1d zOIYk-#BTATU2Mk6O295+vA3((g=Va*1ndG9`*p-__M&YuV`U{^n_28_Dt5jZD=Pup z#A3gO*iBxv^UPRT3D~(T_Er@;$BdPgfSt`^Z$a!vFWOmVtgHm=Ocr~yik)G`%1Xda zXR(J6>%5zW*Ui(+SXl|!sVr80<&Ee67Whhisa*g6QvN`GbAD33XYPaClerzaRk_++ zF8f~gJJ~C;Cuc`y!d&bsQa7bmrjAc#lfO#d zpS&`;1Wx~<#9N6w5*H=rBnHI)8Gjl6{@<4P_0WuJNhB~{{M~9mC@>G zD)MgR&d9})d6E9%Pr}~|?+vdDj}PZVzY2XP^p(((PFSjmSJVH8E~A%L zS5;Qiz;YPi5OW%n!-G>aF{U*}af2qtw8ki&jN+IG25K61VrF9$Pm;yM3p+8h8LD-X z*Y4219kLwQnBExK6H%Q11%5_LfQ{*mnZ19uEC)8`I7W6oigPiKjX4g(o+ZnHjfswt zJ%OmZJvJsf411<52R3FqM)pZ4&eQ!m^$BJ>410zw2R5cWM)rvmh%^46zcJ-u*wbY> zurcp3u@C$K#n~6g1fM15J!ba48)P}KG5ImF>1QwUa|Ij3nEV*UzauhLw^0XT{=)=v zoh%17WwBwW&;+A3g8JW_#F*=k{PT>0em70{)q-2Zw4z;0FPtAZ)@Na%wRS zUyTkogB2-&hq2&S3G9^C0C=bwtVjVogayAs;IDdJG1v@NqyQeof`35Zt32>PGgy%V zcmNB2nZQo&1zmBR8LUVF+@A%%MBuM@5g%&?D^fiFH*3e``sClu-r=N9C;Wq+H!IlCo0DjUi?p1C12Gt)Qy)AU{GLV7$@{Qn?zGyLBFh~yuV zk0sAdPN!P`*2Ee(>HjN!fBcI0#CTckM{v$REmjfzOZ2Je_UIfqf4dI@lH$!cq<)P}5k0F%c|ArP?aV0fnywCNZZgDd8358Z%NCRcO)zxD~m5{># zhq%HT9d_3o;sP7gVWrFfhq&?@9hS*rXdy1VK^<1e3~-1mveDs@vKSoVf*jOgxy%5E zxKbM((iiEA_cN`yPzQ84rcQH+E4a~NH(3lV#05O4!&;dEEyR`G=&-9S28Xz?2X#p2 zGPjq&A+GpFhh50w>GWALvCxVO{?M{|yDKj^(JiegudWy)CWb=+m$(-gU6#r&p^dl| z1Z?A2@f3>=agQ)M%%j6tFVRMDh+9N3hZQwdG6PzOdxz0sj$Ew}4xv+V>j>JZb#-Dc zIuvk;yNc0e7MkQ4m0R5O{J=MSK5l3O(2IA&aiPA z;IJR(FiqXLN^~kX>>J!+#aNjE4*PHpQ(6m;3GQ$VE#OiMkLDaE<>;V=y@NZf5Hr!~ zC1~MMoWleFix)Kdk%X9c33k;EN>129Cqg%io0Q_ zMhaS3)(MAV6LuKj@JP;Kl-kx;v=FBL5#%u7dRi`aMTY_|yKycf=&Z{;uT#4QZewLF zEpILZ9CqOxhS622Se|g$lm>NJQC>sC#$|xRJm)Y(ZEF-Q1aXcNmynEJJJ7VjKgQYAcs9gbkH5?pbjg_$BHDuVSvLF=kR~z>I~0eGN{Aqnz3RfbQs_; z!8xSgX2{WsPhA=h>ae1`mWGSV0EaQo;b+t~G4U`fiIT%$v#8R^N*oHfjBqaLhaaMY zy-p1WZexWrZ5;+U3~>&{4?>6)5ob|JP>0nOW2sYP4g>D|FX0^ihuY@s*b@soFD8e< zId7qCAe)EivK)jfFa~6*vrV$c^{s=s8A<4#jv6;;_0-WN<}?+-QGJ z>>EXgof++7fh;=YM*DLj`?}2?e64{;JM8^pdN~Z}Qf{^iqlK;k#Wl`NLuGA^ z1c5fL=h`TC$KQKn^(^ujWH#1_i-wrP0EcIC4r#6E(&#I^(jIhK@@Cm#aCKqtIncEOnT;tRj~|y0u~~tvN0O9IoUX(${jM1HI?C zBDljbVi|WB;BYzTa0Io`dFU`X&LD>Ymw-x|V$#rA#<`?~$`yml(>vp`mR22?0aSY0g^r>MgKhfSQr3iDIt)9bKfgM&?i`yHA0S;$! z4*QX-b3KPM0z0g6-kmuNa5$ZFC~m&Ccn+rpc33TLn4%5?98TpN_90grJ%^2f9oAHd zEYo3t!zr9Y`W|?6t#AnAw1FH38>i*YYU5DAPRn>Ph4>z#?8xRxm>j&mq(35yO-=!8RYJaHJ}{Qsml|4%DDI{%aWx4ifN?)m>R!5Ev|08@)_;UJfzgI)IhE5HYm;AZpNz3!UkPR*D zV#ocdI2PQy?FoflV%!H95fv3;)VmCD$d39`Xz=~m9fG^Ws1M?>e5_bZ90oXK$Nb6U z${P{80*`roi7PX}Av@-mkob>Y3xkjO3MX-K7~qf{^NY#VyPm_qV;-&@M3*`YaCkg7 z$rh2T9|(sN3%lxQk_B6zD{IBoibDaHwVca^DfP#DWo{!};j2 z>yzXbE~|H8Wk~S1_Vff?3bYYRMvN|-$eH&7b{E!$1Zrb-jdRoFFu);}j2IoxLxDaNjV$_IK+Yxqr*Am>Lkx0R)z$1 zCfq4*k;Sc1{vfS?Ymt82(%&S8MV z<2Z*iv4y$cd0pB+u)~^a;m~1#!(%yzGtgBg={f8d)L})rC=+lQ;IJ>}a5}kqPB?_A z--jFqTkY%W#5&_pz~wQV%W3E=FOC7Y+8o^}m(;B;1zh&#Tu!C-eOt5=2F_9BGC*EZ zU0o^K=rF)xFV3O32^F1-BeiF6hj8Hw{Sgq9K&n`N|k`bfB$>i`WqJ=PQureh0CM6DW4h7nXB_l?clgJs3 zSG>d7g|#68+gK?UIEMiav1G*PP`pnNqZOwH)`kRaW2IPeq7DUIvPC2GO;UHYfHnp$ z8iD+h_C=Qg4!NR{=O$36zVAIpQ8W^4#i?{&Y&jHg$(4;fNBdd!63?Y58wuvJPMnQh z3b^D7N1i(oow*f-(5=A>M=Gi)hjtm@kSiQ{ZalTFnBPPLkJTFIRe{3*hY@b9jzfp} z1zx9yJ2O_Rs$~ke3~??`AZLe#OX$>+z-_D+^eZRXx>q6s8{sX~u^54+HZk$TSwdGRmwyw9iowpljOrXWAqOyXH z$}R&O;zTk!6!Yyg&mqp2fDXlL)~Le(hd7Ol4lgEGr+W@@z65hv;cU7N103QsGCI77 zTzPYDH_n%U4xL(OZ_e$;X=HS`og8}a19#(W3F=VnfZqGS-8hMi4#kTA&*831I^j^{ zF`mO+7jq6TP+Pd`qE0xZHN|~v3Tw)C&f)o*!wWm%P~9AeQ)&}S%; zilRfTMKL-&S96F(CqW(34li{n)}k04o})R$qLZKwY44L9Vl9f%;o0cWt?7b&0ZUE- zIu!5PTm}pptVA(7+@?9if|H;QY0yXxu@1%PaI5AJ%T0nhq(LJ44!!4RaEH?@2 zkOqz95UWs(4mWEKvD_r6LmD)a!*!g)O`5~Cop4C|q2zE4=aAlyxndZlt2^P4Ub4Fk z7^SN?ha0pOt_<$5hAxC8hbuUT>(Qb6{VQnU^571gi%V}m+;s-$@GQ;YvQ9V@OIy+5 z>72teHHS+(;ZQ8zMTe(x4%cZ8Pwj+5u{{+Xp29g?t2sQm6Ar}&Ty)6Ro~+RvcB1yA zT6f6So~+g!2CqG-a9&asTgcX)tkN6?uRW=7z9vz0$kv{$B!_p=C*E5Gu05%!aK2~g zFkq!&Yfo07tE^W${P)44e=jyFzYfIW@oxRJeEV^8JS zOJy;z8+rCFSq^be;n?CF*pEzbTsIIq&@gi@jvR(~|NpRB|GzeWV(#C$mvdjqEy*33 z{eAYf>^a%WY%KG1W+(jS-*M^p()Xn|r0Y|kr(T1<_qR0FJNaSqo5_okb;)evg~a~E zLinBk-^Cw^pBmU6jdT;bg(FxHbB0r3LEpl3#6(2~ze9=1FDPblmTJmTR?Ga`G4i~fVdEj!|=&duHV!C~+bUs+D;vdaL6?1;Y= z<8sB|P>lE>Pq(sM%W-$J)8H0#*!2l_IPDhGAdo}xJtUU_EoA4$&E(2kM0Sh05y+ua zpyx2aAv<9XX%2%=m`dkcr$vX8xfyy;b2usR46PiaZRWctat;q@4(mJNP+OOGPv9Kx z*Bl0~IB~z8SL{-@;$$B>?0O%$g+*_7;EI!qO7UfEmjQ!@tvK1MISgKLQaMIk6gokJ zL$>0C_AWO%XrZV$2{tWgX>%FikgYeN4b2sU!{GHMl~r^wav9)|tv8`v&J}~h!1X2- zl~r_a=Q6+{TW`{;JwvQF33i&U6jhy)Lo7ov9^ZFr4zb=Os6(3gl0z&*F*>|Sb2z#a z4r$^`4o7hgZ`2%)?1V$wo+O7OIEOnlhr>JJkPf$!!(p7m8#ISQJK>P7U?hh_IEUA3 z4hMI_p}x`#;v8P5IULvthx$r0fOB}Q=J2@S4lDJQra$NK8qMLcop7kHH2pY-S8EQj z+9cq_7o`=_pur*(c?*B3Cr9u?k=}R+VM#pv)#a`>3nLaa0i=&+ooMbu${Lo7fsIuzv)B0Gh$gWXtZ6141~+$oT8 zDBu!HP>e3Gpw>BJ=v1sV3D(96Co?TN#1a&v!!M)5?ERusp^aE;61a`x8;UMvaA7wV zp`go@^gT!KYoA}jZ)|!`5i3p5p)Bp_Tc70>^wm+pfG))X6k`i7C)tCZ!%}h>D2=M1 zsULM1;4sfQybN8r1)uN?bDeM~cEl&W7G^nz1(fBBGcnT%hh*(C#QXm}`1k*=FFgZ( z|L-IC{l81|p@`=glGrC2c%@EJPaW^)+O zrC3N}e1?yst1fh;jN(ecR*X<}yeozW-ieBl3hEA*0S?)U5s`9u{l7bS#YmO7#Vd}m z-E76kqtx@Xy;FJ?xMBo;{!ffBhXLCjTQTwoI_%~>@ZG^HMk>X(Ra^!*WGhAZz39q)V*umyOmY}( zoK~v82n8NR@No z_0ojhY~{$ev=#=h9I2|*r$1Xc@=bC$l|Jzq2Cp2c5<7qKn*_Vr%8_qq4ue;YRKal< zrkCW9tsD`nM9OPn@XC?$YT?jfz$j%aN7~3$ag+wG9D!d_7rA9|l(Lm0hsog=UJF|S z&%;V5w{aNI!e(yb-;S=*T|9^LJK>O8=rX`z6X%dtQupiSFiPhIbqFUQT4`JcIGoEl zqyl*Nha>U)Kdt0ZJpUgqJ->8jY2WHK(%Tv|KkCV?QuTL&c9+&t_;-N$Veg&W`{$BhW z@vZUk@dW%8fc>$RvC+~0M4ydb8(kPZHu3@70&I^oMDpRc!?%Rb3fG3Cp;tn?LQ6wK zN9#G)Hf&wBam)H;+tzN}fY(o<+r^W21{|2- zI$&Y;KNuV#iTfQ8wovRQdy4^H|j(UYsUtX<*T zjsHQLSe`6Pzy{}jM>hY~Y;dl3Wb-fC1|Anqd5b1}f)Bfd5~64cnBgq9F#8z2xj%mf zW;ow1%swKsiTFw0aEe=){f!K6^2~6uTbTV-GsF39VMb#&OGO?O*_DOO(`@kh6r(d;z-pG2)p?rLOe?E%HLDp`R@*cyERCtdRYbZnK@tgsfQV=Iwe6ng`UVmh`;YQC@x zremvwW`*@I9a;_glV*h#FdbWcpjlxlOovtj-$E;Qw}zQ=qLtN~n$>tKtJgKFaW+;1 z{;pY_U}M$)A_yXHLE%stD}E}R?(a36R!Yk!OD1F_;Zpu!w;?iYd{?Ag0jl_ z)}+G#ht-_JpP@tdSPl-ycETa$k65p|vU+_8bN;YpHVnN`b=w zhiqBP8{}$^=P-C#OOZN!R^VOz-2Af70zE3av0#S4>zQLNNsbjYe0MqCw^5EAI*th zA+cBNvZpsE{sD@MKjpCJC{Fyc7Dg{l{1S<$(I@U%Jvs4bSSa#u;|i={V~o?JR0|Cjtj`9gk1zDMqtxo_sS<;Lfd**CHWvMaL{ zna?vXWm+?*Wrn6dNk5(bYI=V9=+tjhccsovO-QAZuP65>S0qO!{+W0(ab;p&;;8uh z@o&R-08WI{|7)?mu`^=BqyLCL9=$5s6zv`PP2|qVIgyhhNvHuh7+w_~9r}0Z>Cjh0 z^Fv3M{1yW8{a01ki_1XAN1wy=HaNdQ^fj2_f?#1r-#KxwrNIo>01LCz(T`+?tAT~t zQZ$RzdqLs?U}1JD8f2=Qr>;pUaZlvFsnne(y`PEkQK6uvEvwj8@{@C!RN~&ap6~R^|TTnZ@nQ#-Ks&@19xA&Ww`H+{d0- z)Xt1fp}CJdvxuEp1qCT?JMp=N?aa!_?601;ke%6RGW*aoE3q>hMP`3-&GuYkXEu_| z{_L4uY-ctC4YJ~%3A$v@MRsPx$&Yg?2ea*VX2ZzL>ykYe+L_V$BKNA-whQdchM<9D zcD|k2U^Gj4gKN)uc4mXf%o$wpBH~;y>uBGg4s>$_usO%VW&rx>D&FUmR224{4K`!N zOOlP-)~wv(_m<=^r6IAeqAA_EZ?kJtA2i5{TNU)R)yCH`XyjfbjxOxk;xsB$7B;=b zIoumxlQ^ep=!eaY3EY7jP3Xd;EA@I5U;J#cu<1p8=h(oo#nKy#HL)l4+corwlLV`6 zEX;byX3%?BchljM>aH1Kp-qQIv|kqUk3Cp$V-ety^vq%+9bgi;$T!i@|J}otc=9#l`w`JF}1$XI)YoWTDe z$G}N%G0vaF=1Yeaoc0!GPiSVA6Q8P&V>7ACF%fbneh1_45j4ntAS{Ul?;$fUncQnR_3tJ#Z|d*0ocec>Sus(zociBHGxs;~p(jtX zd)(hZvzT);3udRjxY_Xl$ z*U%tKkAZ?*WM_6Onx!erCbNZhX1AbON+c}Uwgq-(htSOZlW<^WS4ngDAev?93{64W zRni?&yv??HnYC4ba5 zyGokFyJ>k9t0g`+QAtBTGsLBRyC_JyjUaEc>>hV31xeRIWH!^zY^N6F3_G)%v>>P3 zncb)bInB;&hZf{iJF^?KARFz>uGfN`VrO=p7G#5+*|l1blkLptlq9`9m}F;mHG0dR zj-ND2Cfb?Ni8fzcUhD15uA-jo?|GYGXLh9)BG8>ER z^&-s-D{CywwrgfsV`E`Pd8>5Zz_J<(v-34?SYTseb}pIy9zUrkv8Kkt>>SMut7|OG z&L%Uu*(7gRP-9`XO*0#5XSS8hiuvRSJF_jC*>F3v&6?RTJF_!s4-h9E-13LonXMx; zaneDvA$DeK$&5}qcxkhDFqn08=39debFVeU`TrUD{r`jcOY&3mU32f|Zp)pO8=L)K z_WRizvWv6*Gk?l_Cv#C|N~SdZlk~0Wb?K_qXQ}5?*QFMw`X&FEyf1lSa&j`4cq?&p zVojm~e*gd3_%-pCc%RtsWB0_)k4^00{Qu+7q0nmh8-V{Qc_zs5zpAj$ZUVQ_-BxS@ zHXldpKD!CrHXaS~D?Ky23EVc09?ip^ncW0#qx@M4(ryB`QT{9iX*Yq}>a-y3CU6^_ z4WuCLCU6^Nv{I0E6S%Ef3({@^w~fWFmx8pLz-{#E%Kd{2FiPwua9cS&Xz$u!pWOs* zqgPicS`cYW;sow^1#KIJ-r`wra1F9EqgPjPanp-4V4$5DE%5Q2=WT$U8NIrSi#uZU zcATBrF!U3v_Pq7CGo!oml7~FAW9`gJ$$-*STtWBs1G5fR&^Ag`V&bwF8`js(RhGuF zx5n?YD~V~#Xl7UvV=+Wh*s$U$exF@cOk0x7yi@!>yQ-MB1etlK_P@)E1u%_ z*;U1~#mJj?ir;5f71Kty`o&ZHKD(-zHgP>qQ;z1ST~$n52!o8$DUHnRs$$woG_xbE z9{1rdG_xb@%>JjDb+a@3FPgbu5rP@e)z0iwG>dup;=V3+X8+O5O6|=4O>O&-K5?4n z?acm3-da4foSoSxWI*@*^tiKjX8+L4GInNSqnYRhnYJ?%_tTGhW+^+fKcYdb*d<9j zvp=9&vFK-C!p@9NFIhUJQBTJ0%zj6$y2oo<%+Bn$WKitMsGZsSXqKfDCE3V2RJF|Dlthg$d*qQwV&5En?-b?Jv-X?F}s=U{-Fy<{ZE3V3WEem6Q zOx`FH#Rst0vM}aNGV^+JuVrD(8)WA7PgGOm>-e1VozEY#=M4RQcq%G zOvjnR;aAWsN=rKRB-X}Qn7vG97t$v_04$HOFndWe+h%9>BAKo8ylu5JdjSp7lu}aL zw%D0Hk7hYaGstYSo!PS#UZWS}COfldG_#F%W>2G;bhEU<&g?1KOw|A1qo4of_y6JS z%h{dTQ?o-epJblMd*1>N8eg=O5@H+VRf4|5dBlkrvj7*N?!f%Cd4zCGU zggy;D8@eXc66#a(`;vQ1Hvq7W+fDQ~+I-w^=zy8sL~j#UXT_w!Zlbq|&8KK)H__X~ z=2JAYo9J!7p#f7gvzzE`v}Z|OVmHy-eyw@4o9J!7(#-58dfP8GGrNi2_MT>DH__XE zp_$oD^tPXCW_A<3?Pr>q-9&Husb*$3(c36#kRJDXtM#Fck_O4_EITtw8YHtb?aU}? zkj&QEnNiXpnXR=mqohGHTVrSTg!TYd+nGHso59@zmdSKkhX-bMr7>;d z>b}PW*U+F#@esDq&g@q5bGhejft}ecWFU<3 z&aVZ`IvT|L=@#x0;i{sruNiDQsuphBhjO<-8ywBIaI{x;1U5|;HhVOic@{ROVQjHQ zqCxP0=YoyJ5ImKd*5!HXF^NUFZ|a*7vz3FddBHS?UZjdlS##xLI zS~~JO(UO*e6YK_X1Gy?*9UpIJHd!;Pvoo8dnbq2vQNO$W0mHb)&a9ri6_>ecJF^LB zCcRD_YiD*6Z5EWsMd|zhGfKX$pa1{gy#LQc-;5rNu8NM1{5$e;`K?e1t`nl8RN@{2#E*@N*b=1?;AK^iT{kXaeEIY!ljrGmb(0>#^1{e0@ zf- zRgCL{Nj$s0ehhV6*ohfe1x8#~i8@z|YXLsJRQr)%KdXLr%NS~*L&g<=6N|Br;;O>_ zF(B?Z;k%=JV5t`XRJ2PsP`vY#!wgGl#T{UmV*_lx`D|zd0XGY~OlG(9#W_c~h zes*S5LL_X}+5a?e zUF^(0*UU=o%s$i1@^)r)FDbRnu5hO9Q_Y)Q;Y{0qG&8%xnYMpxW_E=$ZU55D>{zEN*A^v1S&tGy6z0i`tp}O*4zwnf+BW3)`8An|bek zet*c$Ow>sg%}VUd{;USM?-Dz+KWSzc+nIf!nO$UO_D9(a-~TTtc@}^F|BliNN@tWF zlm9UPbpEFN%6xS`k$Wfit=z@AIl2DXkF(EYcV*Aao|NsDc|Y?&=E}^H%&1H_{Z{%L z>Fwz`>HeutQZJ?sq&BA}r+Os+kbF4#Rj39SoeU>_oVX)#0n`KZiT^eJOuRL|CVoP^ zH1_M*1F@@Pr^PB_k?0%Iw&(@XnbE$HkKlI!c1PAl#=&0&_+|M1@D<@j;o+hGgAh0QYlo6m56HZEBo51y4sO;0J1P z6E|vSPeR%8q=g`G=Qaj0t9%UV=;Rz7RyctBwKxO%1Tm$tjxGo2Mk5Mn+@_7_DRp$C zK__iQ=WTJ^CKC|jX3L1h{RfF54%}i5_a9C5vm2*XQ^3^WpvIk*Q;(%Kx@z1| zIko6MQbX9dj~c_CwxF6Krf~vd+&vlbSkk#-+%wJM`mr=Z=mVOFJEbA$=K87ivKr#R z4bp&~JFC7)^fg^s02;SN0~*E7T@$GRjk}=%-Q3VrFD~CIaG1bU#63{Vfp%Aba~tPM z+7X2VxbY1v>+5&hG`FF-sbS{)8j67~d?0Mx@eEioz z8N{<&X0!%81a162{Bx? z;+|#b=h@H`G~z~xp4g8Ym7#I7TAEtKTp8|&aeHFK)$~MM@pfK3mPUmuzK|E!&;%#( z@WTEJNPLXn*qAkEPE$jDEv-qzFlvyW&&a1XOqnxw>?~@Z)5!CfQ07bpwI_xv;&Vyt zdqq5}zGdz-afLd>L7&5*>zkUZsFi~q@!7n1%4F2J;%%(BL98Bw&;o+q$^|{Uv0gly zfleG-IP{DLF>MDp=*?#I%xP2Rw2Y+%@;FqFDD2-vYTrpdqoJv>x^hx|6H5Ez2RzA* zr1yRBLO+9+1Cqnd@&S_a(QGDj7!F^i{8TTn0FdmQbMS9c($ zesjgEIPr`YF+6%ZfD3Wa;H-m$O>Ib+u=(TG16f zkqc908EJjzH^fjsOH#uaI-S(M@2whJ>L-i$9z7iNQZpLG^|NQAkkl~rPb0PO&`0%@ zS)z^I(FP(pm5*c!t#~Acjy{FNz8wuXvA>le7)Jidr1c&7vnPp#gQS36V#YQ$&z7{X z5-cXI?@G`(b52uDjk6LQiD7_#QAhe&Q|XNq>7hRslHT{p%$hoPig=7iARPL70f~M4 zdY0HQXmjp{a$vWZ*;DG9Tf~MzVi-`(B=#LpQy`VC7mG(%M1y*M2WpXTk{aS}GRIBq z>anyzyYhJ*%4v&sW0~7gEVS&o>Ny>##kxRh=)&2g_I*54>Ss79O0L(;$(YUrVQfJc=XGhcnD@$bRRwOcT=~=fJ0v-1l)dz{77COPNR( z)i8Ock=l3iG)xvfl0hl-$W$-tcDeE-7_HLj63_qhOWrLh{ZZ+yrDvB;F72NGApdy& zMmYc1<+Hi>a`)w~$Sul^$bON1J$rlhyzGo@pUg*@=Q6u9>oVgrUErGl_ou&SiLQy(MiY^@BZuK{0!)c?5C1m&VED@L$>9;9&q6PS_Jz(2oe;`Em;wHc zEF36i2<;vot-r8y(LAU1It=HAVv68zpzB4B;J@(DlHJ%a2Oo*E4j&L{0zU9|e6hq+ zIHbmKM52I8iLV?Mc}YL2a6n`W$N8nU?lSKLM2k0g5GjMn1MCa6`r;NH-#0l40im=^pn9Kwo;Lpw38_>vkT5t)O3B(&y}oL2BK3lL`K0m5YNkNK{2Ul*QFRywex&Ey~rwz0o7NJkphASh{VFIA6qWzVMK`J z!goZ7ZGhyo58#Lp35IWb-Hm_@XeU5}VwTaay<#hH=9aq~91v-SZ$OR#t_?yCvsYvp z$NCLXXE$&h(1w6xsF-TBk4Wqv)B>T09um2Re?YK>+He$U6L=lqfZm^bn57JAA_t#bzXryLgd%nDAI`rs^BLoT**-P?S|y z;|v7Rn=lflc)5*1kAVm^jNt}S`;K9#P-~=6=uRyKEuBna-ApQ-W*jGQXaNKRE{82d@QyiRNmLJn)+i6r-3EbD;|axsKG{&38^6ILh9EQyCB==oBnwsjT)KwsN27V-A z$kdVAcgQSkoG*@8p1773i*%pF2_V;aakN`!7S_+4Deft!V;mr^?m%3PI#)c_EN*UT znpRE66e`FB@)%A$u|1tVsSoo#g%3;jaiDB9u0(1VHP*H)X%C_#N~{*Y0fNh zGe`$(AdhCm)7(qP2B(3ecyTq|SCJTALX0Faj*WItaMql;b)==MRTy<6NQafF2zf9U zGQ3B^046w53^Ie~H_x3Vj<4fTJh*URAc=iXx^O{Chhq0#%m9`28qqN-tiJeJhH>m#ihc>F>z^&h@i?negL#C8iFE=ff#Y}kEC z>${^iH8$77D_!c6@n{r<)v=EkdV6-`{JFErX=YJpNAdjMRPu63>FcFmhx7lG(jNIg zz+V8kI)8G0MDFw4tGQcpn{pF!U9-Q=-k-fZ+YEmN;FHYvGP^RXGu4>{{0`t9>GRT4 z(mhgtNIjJLa;iBsAo)r1d&%9&HOb?X*~Bjr_a!b%EJzHB|117Nd{2B;yf&VWy&L;> z?4sDLSfA)$qfbR|h@KuTkA@V9f|Gx;|9lkU?Cwz41FQM(2pt{6uYeN2>`+;zH9*v7Tc_$!T7G<35mvCe0brY*l2xIoTf%H@P=M| zbm5@bXz@nDXDB&*5t8r#A&JeF3rRMBki>rL9}-m{&_kdLdq@=yiXGQ17g?8(!!r|m zE{4-?6&CdkP7jd*;KjD{o6pb6x0S<1+YiOMr@Qj3A>O(kBY6>e^iTl3c}NyPB?EI6uYrmKUO?3 zPcJrPvwn=Yv=e#=U+l?-@Ug0b!lA_-TU*?g+YjmbX$!`RTL@1s_GMqXD1RV2U5#U7 z#n$W_yi))n=^+}iJNx2A2?WV0K~2MYRotK31y4l~k{W^$8?^7(ci>`h5+3NqO}agO z^6YYP7bs>HsKqYryLQf`Jj)`*x*MltFsR1n|KY zckFi2i?R$=F1Bpno)?7~Bp-##Ax0xMY~Q|gq1dEwu2IjwY?|Q<~Yb$XWbE@dv1TbLyss`Na0rN14@B zDne?i6~X7zi`2dyE{a7+KAbun=#q1Fzg*245Sf((4G?mYuBz{mt#bYomNg(>7>sN11k$-uw= zsWe5EcVXo8(v#%$)-wzZC?&b?{H7{9ShYp`-a4Nr3*S-iRKJi1Du2Nlm?ORKGk}+C zQ2*jM7>o^u0hDDLAoM6CH4e`VFP}1*q7icF{LUYs*N6NR%ZDNxk`JP% z1+7hz+|WBzW<&ac?$b?hcs%oxe1MCOoAFMm4e6=Y2BVLWzE@eeeIhu2@%)*y>08~= z58Y^@W;tl*Hp+5nY=q>#k5-iCIFGhJ@*$cq>3xT?qemgBG58Q8r&1nj>#=U|C1$xO z<{>#%^T4<~aEUp1INHJy)CrzWp`gFmtQR#sj-D>Z;3Rqx>3vslh`2_qgJn+e2ey+M z$4$F@SE$7-Bt4uJFJ$F#k0#_)HU#nuNbcM5P4&~D&WXB)3Qe(V&iCl;CW%vND(RuA z=aJsjROeQYVu8nc;9PSsP&olLOa%Aj=a}W9iizY@nS}JSJCKVB<;k~ka;#(`I+ZdZ zeJdlUS|*ZHF%!NU-9mETj-hHMQum@U0P4-GdW^`og<72d?=LBRrSwqg`qC3hGx?wA z@62z{&&l`8eUy79*P2_NtI9>PKhEBk-IyJp&1K%rv}Ml8G-SHNyZ?LB7o}&Xk4pU| z^;qia)TyaasZjFGh|KhL4Z-L(eoDlB{mH+q0z7%VT z4Wf7dd!y^3mBN9t~d=UK}18`fuo!(818gP<`l#lJ`sQcaHxf z3Wvn@N{iz;E4RRp0W3Sq{W$=O(mg=jX+EPEYoDK%F-Ch(Ms&6a}3!0`>mWz9+S*VXd>|#gd^pxw9 zJ~Og#NZL~MUU!ZNq6CSouye$g>gzyUDlT1sv51>4Xs*~(eVaRRPE);T?o4VfsKt&- zYWn77>BX+f=*2yN(2pt{ z65Fb8P9|E=Fh{n4h{VQf@&J2{6j1{DNbIbpK63UZiYGC=aERGhoh%xAlg2)7+hSw& z-E2rM4)&g0?5nfe*}=7r?+>ILPS%)30U-p-+v7H^bqEY15ob=`e9@7u9pxb%)D$v0*$ilZ{Xote!g}A(Ma2bisdm83i z&Y%%C&_Ab>jqePRwm{FtQpQE?7>eKBq=XGDIH!?~?}FpF5WAY^F0H%7tshk^wL}|e!-V5V4lt)3;%fvUs9&<#kZ7U ztj;E}|C~dycmke$RtItsiYK4R$!AY;=|6cy? z{AKx;{NUWDxfgPKa_e&AbNTEqv-f4coLvZi1>nD#S2FuEXJy8u|B=2ceNMVM^|#c+ zscoss%=n}K60mwMHgOPl8` zbx%b2zc0p**v!HqTzKlrrgfes`daWN6b|9CR999JfVXr^ou~^FjERLqxLDPdjSa%U zZBbOY3CftlAzZ@h=vNXu?5ARnOeq|~rL3-Oe23m^YHQs7#olddbSImLU~1tIE^&2b z^_?Th{R&SVS3sMmE=AQarx=%*b0RW$>bOAKJar>Yjt=@7S5TY2241nRrxgz2Qd(Cw z$)bm$xz z{O>WChq#nm&BNL;OR3fvJ77#zCHZbaN_=wR5U%faWpy1kzgngg@1Fz*<|QutHuKVl zBYIJg#upAvB+_u(h`a?#08T0#swco`Yd~>z5{MHEhb9nWq&0#%1iREDoD_`Es5JxD z>Jy1zu~s`zW~tr|7?ItCgj4knGq_HI!Ft)}J!)9#JHNLQeu~kKOHe;)*IJVrn5-~!@ z6%JJrWvImrCCX9&6z3;IUtt|Ry-oCHM!9wLmF=S!eE`vqwvL`CZuDN?kFt)QD#L^w z+<=b+JMlv^A^jBx-KmLJ5Ok@Qh70@=B&YL*E}uVj&a8^M+A#~MTj>%U-~S9J3mO!< z#oTGL=ZjR5F0)WQ%&Zn)oX1CYBz~ZJs98;!G(9NyS&grXMN7#fJ+yFWFsbRh ztH(WiHWVsh3~t@gp+RQ!>`C=b(RUe|;7hK7W;I;=G>E*I>Mqjoga(kB&RcpQR2U)T zR2PA9AIHSqI7$3w1HFWT%fLhZ&5<;=EUvGi?2pc6_;%}9Qqxgaj|5+TOq(x$L5m)J z3K)^+{>mz-FbR# z?R~{wr}q<0)IoUuuPM2zr1Y-RGfI2rU(4^#&&%g>Pv_3fjn2N8-2uP% zm&iPlS)Zv%f02GPeQtV0>V5c?zgejg_=f+v$@0XX5{DA=6Y2OP@pbVYv0ub?$C_fX z=>K8uJ>dK*tNj0O?=wRPk=_Xb0%3ZgPm-BQo0*VFLK8v@O&|~g0#dxXf^At`1q&s; zkdVYxR0I))RNLBhSFtxz6uWEvf6jAm`+mRoKIeS-|MGh6NV0R@&w1K;%IDmBpUd2e zZ~T2NeIFG4RO)l7J5r}4f0BGWIS+#2*HK*kp8;oi1&(Wu6rJ6ji>O@(huuRv{+lXu zsp*eSXL;Fx2FvKH;69-$vO++bHmf_moUJ$61~+ zBzZsQwUNK6WWssQ^0XnyyD^^->?)aoF-OX|>g>tyUu3&cXE`PW>_){g*Vf+FxyXOc z+;0r>#J%%urr}qa?JOsmU31cpK~~|0ohM0#@0&3D^?C>#cNqJJs{<11HS;{|UwB+I z2v-Lr;cKoAYC*x!X4FjQNs{+9S1r+~a0UCFCrSM8o6ylni}{0+J(}h`Nhtw+6M7ng z1mlu1UCxt~D$vJw8`cvjRg4A@8;&|pQqq8CV0N|jE(+dH5H&F0NZc&0peV6GGcaS2 z?!aUm1|}sQXa;6Hj{A*)7?`&kpnRtl28IVFgD@~DWkEAAYeB)lWE2J_K#>=6bgkM$lhQ$UuO_QeXdRl;0sShJibuQn`M>WX1; ze=rU0aFwzhKnuJWah{}%5}J>AGQhgPboI3^^4{!HJ0JOteaH&ceD-{0pJa0;dIJi`$EEd`YHOApN86sg!QF;rlHm`>?-FzUA zAKb{|Vv^Ec`X-#NXPH?U@&^};lnXmeF}tO}unD0@bws8n-;sOc-6lvJZpIzyVYKSSJ{9%f;>QNm5%gkf=87-I1$)%X=U zE-;bK|6NF}Z+Wg|Ny`b%-)w$ob5GN+@znpqrhMg-l`AXb%P*E6ET32UTj`UfTX6dS zVe$RN8HIlpK2f--aAf|!^Y`Wla(~NxDtB}4xa`-m4`jPD`|ypw`I%h$Q|ZOX=HG#D z`(2zmHu*~OeaS&Q#qVYD*WUnW{{=S%{iYG*^{lP6wR;gd6_0{YgVO8$O~S{OCe+}h z&N`EPQa2#?p^^yFkh7fiCV6Fya)~1`JB4F53s3SI5$RNzg`+JCQ1a0>aLcq3wGaE# zRL|XJtvA7oFW*=JE({ zHVn;+P$nad7i0uE%UNoY)%QALXp%7u?y>0fdfcnYf@C62`7A=odVZXHJWv=n%URBf zlwvaxw4WcN{4`UhVS=(YB~Q?hb7or6Z3eZ!UrQFN^tGgSV#fJ}`Od19Jl{RPJe=v$ zz_B^ba@Mcp%pi}1@mB3uxcw17Sl5!{M-9(77Df#_%URr#FKj%NS4p!%gmPiI6A+MC z?UDmhEwIixj0{r1G?zafi%)UAoisy(4nSlhZA_C&6#|hz0RzK<)H2Ny?=jF))mP5k zM7aJVB~5ev2U6ex;sR-En&rH!uRS7cnFi+MrOODL#Y86EO_K^0O?1z*Ov5lIT~3n< z6-(o>$vj*|lXR!qoP~HaZM-XX=Ah?D)YJ4_4JX)~F$n{b1V7Dy^hn-psdfo7n500} zrH|W{9;ntQOgIt>H5*3Hr*Lp_H;i0AEMvzSmb{F4tZKKy-G@m>8lz^?c`(dgFMp98 zf~G;Lqb6@E#GrA`!Yfnyo#iA)s;;v9iNiCOril+Bm9h~C&Hw89Ommi#da1e(3;I2j z&cVJQf{?DMi6Cf}pbm4L<)m-+O*mgX5Cp0j9srKs`mlh8y#-02np><0W+)^v4la^D z`g&cg+5RvSiyUdFnrpy#7kOy=btaj$fjXOaV^^=})GdrdfFc!E6QErGe4J^&fP{d4 zkRfSyW}Ylsv(pG@2zTQRO|vtrqSd&C4mi+&G`kD~@+(-o%itD6&>Lrfnq5XU(6|=v zOe|Xm7?x&tR#nSr-w@kd3{SH=tK!wU22^vysLsCXO$WCaB59LB$?9-;4w%prj0iga zpOsjXX!$t4{@0Cn|1U@8f2HZgrgt@sH62#@Qsu3c?(#p%Tgz9K4=w$u^q-}{;@^wg ziuV=IDC{XbUYM2tXa1S|jrq>puX7u77w0N?um8>26Efe=tjpYzIU|!ve3ki2}$WwoC*2;luN04Sy+*%r?BEze45+c z9IQyaQ&{nLB5w7{BDqesYUi`AZ$;{yY}M9lLcVWB(wxGIvutkhJS6o^wrb}rXWxoM zHrcAJ*CgF6@ya44O}1+9G?L@Zo)yVvvQ--=vH4b{kjYl<{3*Vhys}6NldanL+b+Hp zXVOh3kvc2TN4)WoE$hckApE)=ZYGlE-7f^T#9mgz?B~l{_9pj9@%61>=#m zDtSDDLPLn{5Z73llE+b7Yg=o0K>A9`b!J3j9I-AXkE2Kuw=1*I>kCX=lY2eP;(=uR z;+V!X$QSbsO(S2lnKuiuAsT1Q7-|{^`HrF4>Nn1{UgOL&Bu(Q)khpP}g~mBw-8ccO zu5p-##+j>b9L`&0Lp08)zHxdY8|NCYaYpowQ%~Z?VHO%^Sl>84tFCdFhQ^trZyb{o z!G_r4%!Z+2v%=qDTWlHvR%{%>QlM|XNR~Z;? z2WA+Ud^-?=`6yyA2*YE@fK+p*7tiUKxAjGka9$oXB>CtaUK z3$cH?Vac&SaLX4~*&mFrX@;SROs(d0%7*Cksm4&%=brvuH_BPwrSpGZ;=x4A7g|2h za#_oX%|B^=w0U-Ovgz5Tw>F(sc@5wEyQFd;-ud@vc@~}k_(bW(QYW7GUsJrO*n;=` zKU5efH08JF@6Wg8ex7?QcUA82?6#{?3#kWFy~(}! zmfvVHmv|9HhW~UrD_GBzm$05*^Ux5_nrY4o7B1x!x$d4G8ve)!4DayYLZdb};H=Op zmerVGL&cyWX9X*k@_3B`@fc&&u(N{IO8JT{Kyfb{uR_~<2F`R=uxKfdn@FI$n_}2( zX9X*kvNRh93s?4BX9cU4az3Ds^Y>EhQNOc-bxJuOFhB%bDTZJivOp=1LqKTku-%}u zg7ru_;`MaXizoPFpjAWhZo*|}I4f9{l*3dVDHx5+n&qruT~gjk#jv=Km^Rf}!D^+v zSq;v&{M2U$~^@RH7(nrr&xp3^i*4PPu=D96swS$o~j`Q zJ;f~a6zhusOhOl7WWj>&{M2IYI-W5`8~xH^c0Jbnw|<# zf}UaydP=K8_VA@S+hO@+6;j?f_O#P$Vdl~6&Uw4%z7guprla5hOOJ}7(r&^p+ra_W z7!?lmwl8vDRb92;yu&zvF~`E9V$1<#p4s-R;wBd|2|EE+6y=>jPlQW6NEn4Bfz?FC z@QrdR%sS6m!Fr;+a}C_`cdqOYdWls;MK7^(!FK2+77aDM)E3!Gw|l+BVxgv&+M;`j zN$4e(3N^h{?-I8xqtHvN5^8!W!l^I|y~Hx1rk6ao{9a;z&`YcjYI@0pUA99nRm|~1 z(@U+9y|m2hrLqBOdZ{(KmzacJDjAZdm+D>OmSq%rsc2A|UW#xk%t9{}3`^5Xo?Ct| zu|MdgykTg1$y`sd9eOEe>=eD!(-+xGw|TvkH6TSV0TdbWn1o)+7?PrwB3$B@WfXcT zZBU9{igGH2EOm=j__-h1p!@E17p>`qO_&Z%$u| z_x!z-x+^sqPyc@)Igt2$VqN&yul;WvT}d_6Jf+vwXSSmJIT*9TQ%*5o2~RR3e#BWp zVxmSktAkxola9nh9EMqFln=voMB0PFJsz=)!xoeEMtO@F!ckq#X4TKeW*Q;|YmRcH zsG%9xsL6b{Sa8(4g^%V~++wj&@0LreachpVLaQ^@)GuhQaO)$CvCb%mu^OInER2F{ zEH}!MlZUEnu`my=vGAyOE!<{d6h;MWk^1KEFwfHlnb|CJ0TJ2hRY3+3i`7Q?vaOD2 z#!*egVyW@FxCq~5LY>`XVWFmeu@Q@RK#3Fc7g=uhhF1ZnH27 z&Cg<`zWHM#7K@j1#0r|LK4P(KsdpweVzFi^M=UrKj3I0}Se=w7aBq9pBL6FDW=CXR zNbiQL`-oYB*g%@4CZReW$Gycs#6OZVH9NKtFz~LGztO-jRF+lFhALYH3;Tva$vUSz zCqSg2m=0xc=`j)G=o~|o z$5AxVjRH)=!gRKw$$P4oAJi~@0Z_Ko>6Wo?JB(;Z~Na{Tvfcj zcwFI?!o!7u{NJJezbAi2Zg1|%+%>twvR}m;07tXM%=4KgnThFr>9y(0(}$(Lk$NcA zpZr7espRF!35hSE!1zC1&PrCV$Vs*Co_K6x$5ItNJd}0x+Pla+n_7x6jflsVq>3j-->U^5%tYitRU*%J% zox&l_^$Rdouyn9Gzj$Q3uzqJH3t4Rqc;*KT7c$LR$tqS?BM{mO^O4ZSOm$YWs3pJ1 zBp3vID5XIZ)QA-=U5&VTB5K6)maaxFq^?GoSS)U7CYHHbbSp9FtYj@qep^is9#$Ic z$M=bGPf#_AA22g(hO?5TEctCUwWQE6X4WicB}-ZIn}VWQ?$Bczx|>BUMRx~v40?(w z)18$pamnuo3i%XTt`f{aSFysS=qi3-$2CM(v7n{c`1E!`id`@l9}zWO<*!&Ld0nN~ zvm!{`y3FcyRBr2Ag*pDcKz#iRVGpWi}jL4EXCSX4GK+aMxn=9*OGg@Cko|u5yP;Yu(qWLzCJ9N z(hR|J!m^ek_y&+r@MR2UG)r2F8O@ItCfE?Y#QK$@m%6(b&0k=?U0T&kZ})nMMJz=x zRf9sk#3=L<>00!P0(qxZT zH5f%Nv5b~rLmU+DF@}m>>grxJJY())H-{b zUW!7wbBST-rMnDF(Mvuo=p}}rm+mwWMK1-AP%kkCz4T^-QS=hOe=%s>JB*>+xNWWN zMzUYn%|`@(bxb&>pU}9s8!_us_k&d}7#IE6@;}(OHH+#{pRnc(G zw8YTlZJMEZt>&i%B-ktT+s%ff>9eAuGuNEIHjucCU7Ya)Ylkz{vugzbYKREaG+RZ%5(%+A7pH^)p-eZ~x8$MRBXRRszy zQjEe@g2gL2jz*%~dCjm6c}!GZpJ}!| zc?FiIT*(bwUq5%?uwS@7Vd+Xs7K6675wOh7qh4 ztAe)jH-zjEI*P@r!)5st?M*R@4bf4oPbpSrynr=yCGQ^}-{q~$ELbU4=4wzV*f0t{ zv1Fz5DRi@6?-L7FI-f$II-jsx=*G@RckxiwPKIDeYSh+1ja=2idp%;puTg6QHF6nAkY*59fkK0rQSj;127C&QJAY#N zK22`Grx2*lC(MOY3`(&L$LH5V?Nl|f*e}3NZU9#2mpic-hGBS;foUd|=UFhZ7=np4 z$v`v{%ZG%9A!9JHPBa+J#PTu0#PVx2v4I-7bHblkevM9OphhmFu10+Re_x_ycgw%E zoZbAd=1(^}&F3`zqv;tu0dP{~H2Ow&^rkq2ck-F|{bpVdIICD`lLJIoFRro& z=Jj{goIU>24G^n5-b0Wky#g%8F|byl%lCkMn3 zCJ2a3InP42s zW=T(8@~U`27+?-=09oOam%M6DC=@UWM-CSF^^vCbzih#qS&mTerzzEF(rr`8-gQ3WqjeruY?+ih8t~U^U zb;cs9b6tbg84F(yvnQC;*BXjEsZkv>sr`1i#w}i22|D`lHb~6j@LamYOeLH`7aNHD zwz4oJ7`BYT{lV1+Bj4)QV|bh~=xk@@RR%O!ysmUXey=d#TxaE#1|Yw-%L4=>j1dTL zR~Ur6Gy*}*$aWasm&2}Of;qRvd`K_y%WR zM>sU2KQA-B%l(O$et8)8%ke=~Fvl)67{!~*YA^u=67(AlJ ziN7W`c?bQ5{}(%17Qf`pB0gq~x1tOU4)t~6b2u~+c@FX5FHx&iaExO8OK$ZL&Yu7b z!7*x3IRe6vU=lC}#|~D$RF@uYOX#4YgYsR#naOomH%r zoiFZ}s@g3CtnXWN2J2`Ic18$V-Mbintfw_N{;Gjh6-VGj@uasJglk7 z_ctL(5O-Wmx3h}%w8K@M5E>1*qh#@{Ph4-hdJ%XA7L0UOC%l?76P{gN#k!gNz(Nft z2s})JM=YK-;8FFnqrOM1o;BbRb80=pJq{~q@;y#u-FVorS75P_)&MK)RhTv6tYS4y zkwzHwU35@o?`AoxSZ0&2g+etA5#3qGv^mZy*4pIfP-AJ~`r>|(1vmLQ)PU#DIQ9wm zi>$TD&!L7G!GvQ9=03}8@}?t1G2@En9z#$ame(4nPG5a>SXFDFI(Utk|BxJe(&?;X zSxw%&qdGwiFzHV;+a`I6b+=+C7X*)aL-UZ5SVdwjtpO5Gi&_#U7z=9h1dH@3JmA1O z-qf!FR@kdB3sdVj!;+^~$SCo&;bwIQ1oKZ zi5Nyl8;CrN0151{+8<@?0Ch;va5s@?kUZExglb3{DJ(8H{{+P>l%|HwIywdZ+;@^0@rQuRV$} z3Y)A$3~E%|O9Vbq>-f03oS~V`*o98;KCK#Z6bK+Oo z58>Qun0f~pggo^EL=eFl!sq`x`Tc(rnzuDCX+Ey$J53KYosFmeAFEthIimdC@&o1W z(oaesD9tGTv-q*%b;V<#{J*Wxn*VeDWBDcd<8t50J(N2)`@8JQ?80nQW=H0s%*^!v z;q8A{K>6RDx<56TN+ds%ydim5Vn^amKKCQ4u~Z|g5j`DrmZz{EZcc8@#0MxEROULX zSf?2kx3K{&ZUDJVL`v3dWQ8M!>5d?mhfNo2IkR7{kA6UKiP#6Qq9b3c`X2gY$Yo$# z!#a+9OB^tQLF7_!f5GaFe60!!b(w33jR4Cv^77q*lwTeOH0#|hL9iBp#B$B+BK3u~ z6d0PM-)O#}9r)y~x4cmaFSytWkbI;0nsY$ofnHZfuvpTOw-u4Ba4j*sS=Ny^0s+gL zGOlOgdLkOJxFbg+pXc^s(23Xxu(Bg>1ON%_ur{)eqgop~Fplu9?(o`pCb2458(G3p zt&Jf}ur@LXYa{D7sVa-lV;GiMR(4d& zY$PmPS#$u4JdJb!PZsay%kKczc^c_}@bW_A!EY~Cei~`7Fe+R@Ec>hgsg`|iFF$0n zKbUB&{>T#z%f5>UA~r)1uvz(0T{xRWbvDE*#)^-8b%1*(yy$aixU~~QCTgd4k(qP| zw=4k3=bLDvJ0O{cutu^FWm_eMjEz_tcNp_P70Js}$S=Ru z%<{w}ECQ?+$%{ZFDO@{v#iCI|UR6&x->XZM%UsB-@HC;pz$}c2iw&!x5fNsE>xjMK zMTT~MBR%M?bSAQgP8aMUM%jgi+2AM(`^bwY^DwI}FuVq5RW&bMYwQgd8lrqh6!eE5 zY1k|54Hp=Od`A>w1fhm02sQH!MH6Z`k%kR%DjYM0s#Bq__eIAVmdmhQ%`-^VautPi zgAL=bHlJ^Bs- zWTrti)*)fvf~wN_zccZvM9VWRH?$nq{H5l*o2NAWtm*NltC|k4d<*)2PkC?ogXMwJ zZ%R*;hKv7K+*DjtoKW~);eCafQ2$rwhjV|+ZOUDmD`%h2UYk7_dH?rjrlr z^yJhpQy)$Zr;^D}C2vYjO#B7~{lEFs>8xgDMLsC>@cTv2qB>{WozaRZrLXRhN_rn#|Pjs%homN{R3~Sa-bi>-C)K#g=ST|hBdaD2`50!pn;Dlk;;i=66e)o<#z*j~YK=beq#%T2PmIhj~j#$;#2qrAJ$iXC3cci5G&oy!zVvS^_MPAveIiaw`q;6+5 zODvk)7XI|R+v4znl@-;o7_#`#*xcdP>Q@Py{YC{5ZoJv6sSfMaq+q}@3$y7!!%`iK zqgdQwOv4x$XK1QpaX^bcUNI99=>Wr29g8EG?m%T8W@wAysgA{Qyl|~CLz@k8f#Uqp z8YYIe&!H*m``PsR{0vd6YL4Ei7-GY{Q%wxl9b>UR`+@##k&FR)b?P>>VxJ z{m6UdEByZTFNZdy*3zIu#Sn{$Ku%e@nOT?f| z8lt=fj3j!CB)1xZS;Eld?NuDDs=l~uz2EQ}>4oaK=l8;@`wXd(UI@<>nt3jZ&i~zs zjr9Ki%UTYA{{Nol=}rG?+S0VBsZx2dvaB+>{M+){@+IY_(l<*Fm1ZFW;F;o$#Ulz| zDcn;SC{*zF|F`Bla=*$g$J_sp$$mfkaCR{B&&>ABeVM-WuhJh*52pSvwI#JUbz1Ug z$q(WSfPY0{uj>!`gC!j~Nc6V3pDHt-!sD9H8|oiyWdU@OIgAfEt6A5PZ)AvPf_@AN zLwT|35P6-lxW=P}otx>bW|2p}$D(v)CiwD*EmX;YE?y*HD{LYq3|jbz$*G zzI6d8u!93E@yJgpbYs!IpnuMsp5E$6_Jr4GtnSFE@im}OC}R{_n1vlVH9ivM&TWQ` zI;&aTk+Z}@u$W-R$l1D{OZUp4#sp8R@Scmyerqi4~Uh z8#%UDb3((CNmyZ7w~=Fe6v^!(X5rF{^&9!p%Vz~W#0+euSiO;NngT|sgP4L2Vkt+_ zK|NijgV+#}g9RHoa&+}|n(yy)wN>}fV_xK7sYZ?*HK0%zF$$4`MH)GBM55e2Vi=|o z3pMgI3SdDeF$B|yB^r4eg&?6`VhnnT#TmJmfHA$qh8@mo5@0m1-r?l0kC;BevdJ=w zyaVjQN6^ftrxDd6uSz~_h}Z$L$|COoBZ*$jWEyrHEVRfwz&M)Q*UUq-nPIjGa|Db-T)v}39nCCfOT^-HjHMildy#BEHh=DL?Q5w%Xc`7P z@3Rd^j>R>g&;Vu>V)0o9CCB1Ol-o26!!GVj1Cw`gAy`a6VkCBPXBecsi;G5j5s7iw z#q}ASyo-y)RaF_wPp<*W%TE9dW-WV#<)_C$2~AtZVA^&Yj67|DF$0qgF+IAB zp?t9gF*rOhy^C9don^)*LO`cs$roEOEN)+>VFl?hH2KULqVb6GeB+qHJgk`Qh9@61 zExfRYbpG#1Jep|P+Hy%trTMw$H#HyJ^o6E7n@+2|Qu#n-u+mh1xqN&1xYD;v?8sN%sn4fwP92y0 zTJphUZ!(3i{ynNa__sT2NJyD9VIl>oTb3@lVewVV7GJ&Ss-?G4FPShfaQ@KT{;|1c z9IP^Z2P+av;;j0I$L4o;ESNvs*)e9UR?^QDtVj%rx9T5RV9a{hYK5_y?W|$BLou=O zAra%TxsBlX?%zcumK)axoi$q3qnEx*LJze^lZKr&ta>OyM4V%8h+x-dIBQr8kr$sR z*Q!{f&Kj0O6cN^Qj&36SHP*D7yUMbAvz#@oipXoW@18fo>S^aYYdlp%QpSkJ>rsS* zRkfbutYKM1-bco{Sj9stda{Vh$vGnxM50*w-OnF!dm{{I&4Q>1!)>@(92#>+ zT4*Ae?t9V;!&;@J7r4kU%p{B~R!S5jE6y>uu^EUk%yNlhWJS1E#lpy9p+qsVJm+G= zFuRA5#cGLSWO?pIg<+Wf3h9R}IJWQnKYp5b;wQ-tC0WC@319xgb6Ei)uV z7;ftewKpnsn=zD6O}@euwHs!c2^S4Z-3ldzXLx+^t0tZ^2-E3S1Cozlv2Jn4F%K6P zw-{anl3~cPFbb1si9yLHIp4Lo5X{cuD&%HEY(O%Mh`e=SCg-16-3wP4cOf?# zru^`Q->o$chH+@YH#O3Naj}htF;^N6-q5&%RTGn=uiu8(H`0c24u&g@NO_%M%8xpP z+OWpOFp$pwvl2TKEnjGPq~-FK)0+R>{8ID7&6hNvh_?Vf-}H{A(WXNyKdo%8+*KK< z99aHo`J-j0JW@Wo^lItjrMH$wN{1GIR@_>=yEsrh08a(1E8JQ*tB}usJ^w`hI^+fX zGq*eUf!w0pDcL_}KbL(E-VbnWW?$yn%-b^~nM2Y)!8-!poSvGlq`sY6mAWZ)W-6Qf zYVz^qwaNCx-{F-0Pn)xb^zum)j*q-BpqbOzi=)50dE7>wPA7lT#p6!?WCX#l)(Sg9Whm%M^V){ZS` z{z!xo8iM5O*oK%hIeujSJ&mcdAHmm;b&RQ!tNIGx4gR}AR3>bCuko~M_b{LVyOGQO>@W6t3qg_-|2Rqn8MkS02 z(sSeH1{uxm@9K1i-wR$rB;3Y%M@97F4eDd=N76q-Mrn9Q0&ScT|GqJ$Ur+c(B*?}Y znaYGpdfqFEA$>^NC1p83QFP_;Tw_27iUBzg=54= zy^=`Oi!%yJ;uyh3*b*j|~27(Lc~1m|&SE zi7sww8o*b{2fDCb>FVQEW-FP}W{;#en-v)iS6fYX){x*fX~MygdmQ|}`#Pg7R7e@M zX*0imbmXtoo4;#KP(rIv0?+QvUJ0iwN(h^vgegJ^JlCG~N;pkXLf8b0@u|indZRjR zY^a->ww=A&WcmX(lQlLRa5fqn^x-MSCR!Gp){Rl$*Hv2*tWMTh)s%IT#me8SPMdcz z`IdN!e&YG!HIpn>zHnJ*b)v;;+Pu+=jRM)>j_3_uYfQ9Q4fkI(%EQgwwXZW)*w36` ztfEg!)8@>aYvzHgu&*bh5{!-)j7$&L8Xadd>Yv^hK2)%Kh#Z7)vqcONF65=UT7rjy6WoBgyaG{*giY{lpsjnZ@)z%5^SQmWC)DHi36X z+PuRj);p;c+#T_1;~k8S5RCfha8PB0p?A2dN>!RUo&V<~)+SoM*zzdO|ED(prTOLN zhng>HKB4J1=KMbw?*VwV@=WEv%FN36@+;-_Dj+$zm)w*_D$K|Y$5Zl%(~37 z%s}Qq+yHzu?W9N2N2Oj(eKPgd)a=w7l0QyvN#2#5o@`0{4;-UEt2<8Ca4j|%xLH4P9JIQ9qL~&Ha3S!Nc_U9 z5r@oJBfO0x#mV>3a5U;zinA1NzwbN{75R3IUxyB^!;if>aA>sFp~?hx;J6rH z2R;k^$g2a#L~9+w7ASxNVtfH+MM(V6s{)5YYZcnVCTJzjIErtjc5bB~ctvook-dnp z2`a&fM)8&44bm%KD^Z3~-1VB<(_stLfs%+OO^B~U8$0xUuMU(dM7#B<<;*Ri$^> zH!2E7J#;N!TT;PhG&(wOpug8&?!Rl?!#YB_C~?QTVKRb^zudDGT7vRU;tsjPGv*GO zeXYBL{*KoYlyeeyU+J&h!xv$*iheaeP*TQXWL}dR&K-=KPtoI`T>P z+n#?ZTc!Hv&F=_lA>Z_s3j64Lt(BTRU`|Nx@cX(~)IFA>=FA)%UC;#;z^l~P zj1>;qZ!uQU!F}wau{k630kX`m&99&8tf3r=*f2LTG-qTe^!unkWk|#gZ-30q9+*e` z#8>Gjokl4QBF@S`jn-LF!b6-DetF2u^v-r3b^mQ@gtn%fhPbITyMMtzPv{u-6=MVk zDRm*PsFBfy{bm4p!qb<@icX`HrVv*Yey3{7$if&7mXx9pw-gy8EMHVW;!E@sVR8+n zAy|u{1&_mVU_>bgaYi^maE;s<`$ba{n&B2>6n$1P4?gik;udEs%%dg7DtaD)98O#Q zf>)=TE$;QtUoaYJbd$ws#>|ENCQ7=~Xt!6=jgk?KhgzdIS&e2d2v68uUP(9DjQZ#G zLyq-J+G&i?c-I@F=*FATKiU;qn09zJ*V%2t&9L3rplh!+Hql*+a{7nstuXYiajl{@ z9R744T3}9k=DmQ}Kdf17G2+kR(Hb+ffLvoEI{(j3;Q9YAxaa>rH-8@Q09e?3Y}3A` zPd7c#G}d%XWq;+l%7c~pm1E2M%bzX38(#xFuJr5DbEOAL=a-Hs{u18=xVJc~cv#^V zg^v~PE6gq&lK(lr3~+CLX8xeu4{{rFOLJ%EO4)B_pUmEn?aU@JU(9?kb5&+a`mgEj z>4(#oq$j3cOFf@@M`|>6X!7UDk0#%e984aR_#xa1{lN;#5jOe&XYP4OoaIw?(p)do zR)^zkw9)(p{lmR=M%W;7u#G;S%%3+p+||v>VzSBfGK%3q8&k|occF28t9V8nXXA}} zX$;mH*~096l++!B*(8^QO(KWc=)pcbI=3%mQ+5aLS`M<&19$$w{F(icRvcyHtmw1n zWBB?xC(0zvAjIALT8^~QR_6QW#%QjIf36i8-4<%i!`f&*_d-8e^ctN*ZA_#0&+hN0 zVBt1;!D|bSw9)<{KF>5+6|JsS-Yd!$YkjL)BU`K`qn?m|eo3}iYt|3csg)O(zDSzV^G;!SBX=~-Q>v2ul#WWrdX zT5r@;%S}k(YN2~CF-Fnd>kgy^;hB*^K^GgF=wM{Nc7o>XY~^j=KaF?jr;ChHOh4fc z7&h)X=pUZRg|dme6Z^Yoa)E5Zp)2t>&t#!&;%@E6Z!Okv};z@Lo`ZldNH8}r((y1QSxj&aWm<|c;b&-rc{(UZaazI$3=6ZHRF zV-nZ@_;v#7@11_u8NXmOYB9p^x3}|NkA6L|$ukH#<1FErp1PSo!ZVV=Z{`F zGb}cKIeZiA+YDK3s2plJx12wC!la9SIbrU0sQPCsOgfFpey^0X6ec|U_jx8~Dol7(?lmTunr9f3 zxNt+y!(wc@cYJ1Bkb_a5F%qt_@kuBu#PkpafnJM|S=eY#Rb_;YL62(`x!K`wYt^cb zuB7>);%mhhitjFt;hli57Cu>U3PXi) z`ETb}=5NSP$^9<(Z0^3??A*cGpJo3mdsntUTg-ed^Wn^unN!lgOFx&sKRu8xq`sJX zD0P17pyYRwA4y)CoRoMC4%zv)#0q8*fep%WZLgXn+{K}Gi!I&QGA*>;pBL;p*pKRXB~y8i4)9=F=`9*Q|LOn zrwlBdH`w0VYNBZJMDjEZV+vNHaaXnRM9-MQmT25rZG3`fOaV+Z?x;3C-ZQ39CK|U_ z8z1KxQ&1C)+p3L^^^7UJiN>wf#>aTZ6y_x3_P%Q4qm6O5vyQ^u#0lnOJJJ1&tj8)- za|TUgBvZ_b8Oc0C<{@&k^+pIQ$Gd(;ta9PZ&?)9GW@E{>XjtivGp3O%9h(l- zS)n_QHCB-ka9WV+S!ap*9b>5ng@3 z`aWZL=A1d4;4s@OqHKOW`aZ*S3fb`Gy>C;pyJeCG!W~&c<%`C~){#A-PRV1q6cnX| zJ2H<_@d?Nu^|kQd+%IOs7yOoVpY{^i7L(ggP>hFq1Z=#Dp31 zhHp#&x0%ONchXXql8k~wd6JE=UL}oDv^M8Uk_u2=p`O>L2*H~ z(c1ehM)McUn`v|(zD7=tb1Sv>KC98x1!2MQ0MF=Ni;=H&yCs=NV$pnS@39#9T6dKZ zo&N_Cn-eX&S{`nh-*QOvkDE6%FKO;>`diayo1CWUO-+?=SC&_#GYNnL_M*8ve;`FJhKcrqry)8AAD&rl2?@wNkJUsDpxDx-T(^*fm zDrRr*zTtoRbnG$aK~$ucoJ2oz?aq3dSuv+~^D*Jz$jqM2#;vm@9?CJ8ZEgxOmZX82wA!0nsetuXVqpKfVrmAi~tY2S+VHQ-*H@ib&7F3SSP`TU1%C!%KhRS5}l7`AMot<|Jaf+!O zhRSWm&Nfs~9)8&yV}5~4H3bIk!Ue+7TQzn;!}xZT4`ZJT?crWO*;Ei?lTu>rL%JH_C}K}RsWDVsMD)f~m^(DDe|j)j z%$W>XOzS8)Mz*Rtm!cslJBEC;m4z0mx~@WD*C`6~8`F|! zeyg!I1C+|W+)^$Z(Dg@@s<|9Y!F0aTbjE`I88xP3O4F&M z^W0MBn4yE{IM0|yMn~6SY~5>|h1vNEvsy=CM)^1~vDh!I)=7jO%E*~GAu{xYUn7Rw zU0i6k&oP&b^Gyw5Oqn@ax{|(RnS4v+g zJzBaH%Ktum3-F%e^kSv(&BEh_s|&69zvW-bzcW9Ye*@0{YjQW|Ikj+at*qzC5L28xyW<=G(E)kMY;x`Jmy zOjpbu9I9`ZR%bm=fk^F<>Q@)=OSs|T;UBrFVVk<$k^ao)$P6T?z#0- zjhV&4+7^UOzhqO}dKg*f8Jox`>n5Ngp>)dJnImI8X7HPQ1R9d(stkiowAmkIV0ezo zFxcan%~}c5=WJsbGkv_=*SakiHRf5yGNv&{rVZ8A4>p`8VzH^M8f-W_#9~uhD-2&w z3W*uMpEE9#O#$dHpk>?ImQw?vZ-LWZ0TVmE9HxoWa& zvKTc}Y!k@O%ne-`nQI4XozrY{w#t&7HOG1yZl@ZL1 z#wPM+(exi>5Qo~tyzPcotCK~$&c2YHNvkKjlVrQzke#`FAiGJjT~El)#9XpFQMT(2 z*_r!#vYRN|b%pGVN>Evi*7kL}Q0#UGQN5W-q=qQ$j0CJSEj@a>KZuguLIz5strH`m>L&qwLSCmH*D>K!W zOXJ9#9dodxWDSG=LvUieetrNX}#E-D<8|7Ctl{`UOY`F!rHxyN(Y z=BD7y|DVaeJ$pvxwal8##hI4$OX<6C_J0*`{9ll&BtM_LJK2`l2N$CL%yc%;pgDQ` zY2%L{Kk3@VORiqL?E0$~U46x}+ix0~Jv1FJtQcN||5${4=fT!i{MW#R^9M%eFQO5I zzl}{Bojb5-XkY|sL(}@54K#}SyvGJ^zUqo)i*LsNUA<_@EsK|4vF!RKH`6GeKQ`3S z*SCmt9{PGmXGgnPcQ2v;Uv9wJKm)38!kK*arGSuFR1ccwY@qSg=iM4AKm;*KP38)a z{TXsL&|vGEV7^Im)e;59^QRVts?q3cq-udj{80(^3B5*xv2Vh(hTDjJ3d7J&1!X&R zxBHz&dF4n}pf2;p;W{;ctzPJO0T@n zY*y9JB@H<1Dfy(&r0Hn9s;iz0!Y-N9Q6f*NW%s6&*7}eIVq86O`i0jbB8(E;(5FEoRJcFWfK^M&YC$~hj2DZO3wgt_|*(h;6?%CD2nSvpwqr|m; z$S~aF5Ny_4@=<(G>w26FIUmJdVqK5p36k}kkP_ENrZzyV=-8p7bas&%BnfZLB^`4%+hin~ZIAryJX$2s@N{qfjO% zw?^2a%r^;TcE^-?LwuP~B>25G&^744=g;gm8=ZbyDxhMmzus=^zKABm7XDrr?=O|r zgM`caGO_=?*4Rbv^YQ!r{Ro8-VhVB$)?Z^RBX1UsWxdouR*U1U+%MQq;s2#ZIg5T2 z;pNrwUWQ(RQ)h|U#7QcV6F+#XP3?_0ULLca6I3E+6B*Xsk|VifJ*TEbHm3hRm-=Hb zU13|&QmQSh4ozffNlU4-3=U0X$!RGHZ>ywXvgFhhm1XGAMAuB5m=ZaaYrUnuHycW_ z;B9tJHB8_q(p*wnT<^a@M*N$|d*_OaUZoD4de(@&y1dT4$>&eg~Z zt4RhTHJS5IqKBkshmAm7wx%;Hf52D&uBjYd{%-kUsQ!u4v!z>*^Z%XVe-zIs{1#vO8!2S- z&*c~AbGa9CH|37YemQ$*_VmopGVjjxr~i~*nZ7XHlzKL`By|Fw>whRYE%7I7ZhzG2 zzxLm7W+LIWZ#q_xC?0OG~4X~v+JK)dlP^&6RELX;~`;-B6%{B;4vN z7zaWHNyxQVaQf`X3f6gr3X-_1t6*y@HT)R2)$ZDcM+Hgk)l|?9I^Wqq5^&e}ep?Ts z$@_ZfF331V;{t!h^AddWs`CyNC5^a|ijIs@PiALCRFtG+eMRFys3^(Fii&nrSG0pF z+7;~`DoRRoBNd%9-wfHiA}UJyv%aEnpoPu`Qlz`aWaUjTic_(1C;dczVT-(A`#Dt!I_Kj zt;B)B(*|eq`>BU&tBlqoExeJ|8=PtUt3%CkHk@uyNFugGO1{fA@!Reiq6vxS`re3h z>=I`KY3NzG7z(Zp&dz}*SBLF zXuh+76#K66_m=o;T==?H*~Zh}3D zSsHl(A;;?1GdM=M18T?OmNRfDl|apjTP?t$)B-&xCJuu`nFeZ3Tm%7!G7r?8xETZv z_}W3xAQ905bA30h2CuLDC_3R+BDrvpO?3u;VEp94d= z3tCKEmjgqI3|dTFj{`$l4O&cGhhN}qpcIF`@fbRmwKaSS3Fbfk%hyfYNky&FO&2&D zC<_9?gwQdkr2u9YZuhWb2g7GdlhFCh`xUPkN$Z8rlu4oUIXE8BwleHE2g4{UV0sLF`?93lCn=^|uM=v?VL&Fdc{VCM#!xjzbcZm2-fO zL$Z{WQ`T`vqOx*wIu1!zR!&mKA^FP2N&j8PAvw#+`Lm8g(w3F;I|Tz)-gymi)9Sz7^I@bGWvB4($iuYXXzNEti>{VbPUqiVj1l^ z2B~eajMH=s(%oViC+QfZ!NoF;*D*+si)9?8V~{!*%Q#fWAgwNzagdHd%3Um@MaLi= zFP2eKFmP2vs-EtuhSiX`OAN$C68kh)HFglT+@t{7)sV4hxhF~_AWg853dS9aQ9+Uk z^%aZ*p@O6u+ABCR%6CT9dRF~a4||Mw)`m1udkWl76Pc>4cC&2yUzO`mJJv#GW6tICSXg_Q%!yUK4Z_m*BOZ75w{ zI=J}N;ya7y75-BAXyH2K`+qn8aDGNUf%p91k~=B;qwI&WbF+oa=kcb$w)CsW0=OtW zF10)5r23M-O+J;pB6(=yYbdV%&vfT0(uQn%@{wl6`U4JWLRL;u$013`%E{V+)5bC@=%gQ%%5FuOx>xAjH**P_L0UC>#Q(EOEx^I3Uj$|wz&Ek1qRm?cLQUOs~Qj_ z>$`+{Wu__|V*P(Bo&RrXnWQ-XA5#2E@qyymg+CNF6|O8Cn*VD4!TdS7Kjxm!U6ng5 z`?c&lv*%|11pWW2%;D*;r{9%6FZJitmek_Z5y@{P-<|AF{3Wrq{_wB<7pzO9PE9&8 z9jo{!9@kvk14I&)9i+Lt2Z(ekJ4kbZ4-kn}c97;4A0Se!>>$lmK0qW}*+E&wAOncB zD?2Em1CfAb1wHmR9f(vcJLpe35J_2f&~J4h(zEQKeL4_{T6WMc6(DT6NZFdmb1h2U zPCWLCf-~qmMe5ecHJmDWTSvk;B8|&hwa2>^E&)VBmmSom1CiQg2c4<|k=A7gP11o# z>#~E6(}76mvV)G)fk@@DgAUPwNaeDF#_K?&aM?kc%Vvxt(zom&&22M4q;J_ln(JnO zNZYc49@E@614PP}9i+K%28fg`J4kcm3=pYWc97=E86Z-!>>$mZGeD$c*+I%nXHu`M zp;mKQj8IGBl@Mw*Bn1EIrfTu2mA9X$m}=mVRAsv#x&2rjXR5?GLdWTsILdq8^CXV) zp7&gdqrB%mN8%{&dC!(O%6s0k1kN($J@1(kM|sbChQv|c^Y%#`Pl3-1Fi-v;!Q=xqX@DdKQts9T@AmT?IlsY!m7=qS*_9(<*T^ zTOmIGZ%MR#s^#XEiOt_{et+}q=2X-3O}8~ouKcv}SY@nIF27uUOSz-8x3s!+NojoX zi^aDW&n*1D@KoW7!Xf$p&OeYpJNJj&rredeL$hDaKA1fR`TtMj{C`;bYw35U&q@6$ zwK;Wl>hR>(lkZBNm-usHi~6)*_lpD0MpmIL$N!fPQ!E1ju?%GcP0)c@hq8eV(1BQp zvVqDv5GzqOP)-M8Dar=Yq<^EaS&OoOUi!PvBNn4)18f^M%ngTFYQ-w2Az$h zM%njUDiYd=^(af#ULI7q1P}{SHjpN186Z}qY@oAr9+4zv-6g-=qXUsBWd~_;m{Bzr zrEFC@P3IA-QZ|q#n;9OlEM)^}Qknr`UCIX1U65{MVaf*5U65{MWy%K9U65{MY03uD zU65{MZOR7HU65{MamohLU65{Mb;<_PU65{MdCCHMNq0fIk@YDXNOM7oP)h=pHPmXZ zHF2~hfl3Iq8WOfnl0u9Or>qOu;fm69T9R922oQhZ91sBYIu zicj4s`J9Tl!`mg!=XIQA66Z5I&TSIsQ##I4iSscX=T?cc zS;x6W;%v}ymPnk{I?l}!=Sc+zN86jgu^er0|9}F6qwS5rSdX?U5XSSHj6Y_{h}MgK zpmXR3(>|7^=W*SB@u}-YkZ!;D)O8|Aw_kkfS`nn%FFtjR2-55q`TYM_`20VsIob4V z(~_o1l^;|dsm!UQ%g>c>EuU2SA-?)IT*?%mFD@;fT=-GpgLngACjXiIZTVAjKhAw9 zH=4_3U&t=YPR{%!^Wn_gOg{bD^zG?WQ$J08ICXxikbE(DNAk49&k~Q-9qXh20b5y7 zH+o{SYCvrib)zRVm)Y=0)Qz6d+-3tL>PAm!uCoCWb)zQ^*0qtS8$F@B(B4S8k!`>C zgytd|M{AOe?E5_x32h|mMvrUmq5%?hqsKLu(Ey3M(c_xiXn;sJvYv<^*IY*fM8c6B zq`8jF5Hjw5{8X(q=Y#>eYF+eOH*+9DM z?TxG+*+81~V|c{!kqz{cE*`OdWCLjukl_&vNH);3I*(XEvVlIX1F?i;18q@&aI_{3 z$rfrKU!&k4)RKl|549>18kPQxmXU0rX*v+=NH)+pIuHp-)(H7>pAJM) zk{#5k1F@83tJ>*05Nk;`&?!35>0;F;>OfOO&@npDX(H%w9q3dM^adShvIx>V$$%+x ziU_LcJUUqfX`W?(M<@aQ-Zbhgf;V?|J}4s?tN>d=9X7C}>Vprb_4$vV)HBIpDi=m-&Xv;t%~ z|DRZSrSksD>`JQq>GCb*Nu?i@9x2T!rHjuMZ!Mlw_+jDE!Z6PN&*zusPs;r$_rcsq zE{iYy-IhHi^W)5iGNYMX`i1ne^yJh}aQ>g0%D;~D|0Yp5+M_$$ZW4u~J({!afU`*y zj`lPuS{)!!INGB*B~N!Yk#J;-ORwsVwwpxVXwL<@nu)s6o_RVD=|>r?P9Ull)KxjMUZB9i@A1{2vX*YUMYf< z`Jz{dAZ5Pj+bf7U2)TIN>6G5#C z5TE})5~css`Tqkr|0l)s|H(N2KPsO8KbyQgIXUsu#7Cm#{@Q=V8CjH)wmqPzBF@Mp zCE4QAwtEzuL1z;wN%pv;BB5%cl(cQB!XvSN}lI)S9V~)As{kR? zz5yUxsD1ev1qY#a0yy?it0Eyn9wb$5kM3-{X}k#1oozQAD1vln+fCy{knU`|=>QR= zJKJt*5kb1M?WSfCq&wSgY7#-Zv+bse2-2KwF(At#NS8pqsU(7Q3FMoKB1o4&zNsLB zj!;a0#rdE0{}V0xKb`+s|9{@1|I_*Z)P~OgqL#E>IWR>nX}fY@l9puMxouYtOcImq zAmzXmwWRIJfhlT9+m!=T)RMMq1|}x2s3mPzW`BrU(spI`ho~iOS7v{RTGDn+_6OQX z)RMNR6;S{nQA^sU%p(!Cq;0xKBsPg!(zZY7swQel+jNgeY!bDkZJI|UuyZ3V$+mOb zrg^XdJ2#S&>^nCV3EeMhN!yes08vZYraS?VmSl~P+mt5&5|iv8+W3uZddHwomJ(h^QrP)0`#Xk*FnY+p6*INYs+Ht`A?YpA_f!9l1U0Y?b68WN_+uvoQk zD_jC-jtKgi4m4W?eMtwJC4zS9Kr=g zNYs+H|4;`KwWRI;s{@Hz()MrZK%$nk{i`~Vs3mRxq7Ec#N!xemK%$nk{qs7Is3mRx zj1DAfN!vfA1BqJF_Kzt*)19YDOS0|Uwr@~y2A!u#O0w_VR3wBEQA^tXq{1bDL@jCi zhjk!POWOVc9f-6fdxZQC9f-svJLugykf*2+HU@x?2Km zQ)ZFfC4&B{^XN_y^hX`&%_8VE9q0}bv{wPbedO%`*+T6$P3{-&BbR|=-_@!}{`sHZ z|NlL_|KE20=jZ=#sd@gt_WaM!|7UBS|8M;KFKS6U4^T8Z;*zK(?JVm+qL#EXrvr&v z($1s~Bx*@J{;mUwTGEa`>p-HGwBvU=kfp-HGwBsQiNYs*cyh{fXwWJ;YrUQvu(vJIeAW=)&akm15P)k~pHPqgs;2_kJlq7^& z4G9ra)RJ~wqi_izQA^r!g${JK7}(yZ1Dz#;F3^F_6hZTJpfg0!unyEGf@bJIy&`Cu z4%8!p&e4IoMNpp()FpyCb)ZfWbh-}IA%afPf!amTL>;J21RbLTwThs_b)eHl&>IvW zgxV_*vIN@x4;|4mg`dEos+DI*_O(?K)lu61AjV zN9jPKmbB|o9Z1xYb{(VxiCWUG79B{`l6I98py|$L(voc9WLHAL8FV(2lw=PlDiQ{y zs3q-sR&x81KlcumgqpYh@cyEpd}(`u?}>z z2)bMcx=93Gq66J1f)?sPZxTW0>p(Y%pgB6w^&)6U2f9uKO;vypYOe*z8ftqL9E93y zz!5^NhJ*;YSghIowgt61AjVnzS@b5m8Ip^$VRxqL#Evli&uAL@jC8_jMkLTGB4v zs|_}bTGFnsD?CD|B`wJoYIp5Ya1d%qO0tJq6$yOdqW*+Cn1AW=)&wN?ibwWM7ubRbbn+Vz+Ybh6k+kLo}tiJ!vR)7#{j{(RUYOhvs5NeMG zM+mhV5+dYLV%08IxCGFVB4~jQbc6_+s{EIMI<11tcvgIZl@YxLMMYlH+tafSV;PDLL+qibg`!NK3M9 zxRT>^Ie?oVB`qmAPL~6?S<;e{<8(QIn@Y)=*nfa1d%qN)ke?hJ<(|YDv5IC|m+a)RK1pTn7@hq}@N# zfk;cTMaabN@997!CfPyX)`3JVY4_K3AW=)&{Usep)RK1Z)PY1TY4=MykfOhOc?*F(BbeRa+q61wjf}YZW-YA0B=s=f&I?w_UbdL@+Uj)5b2O1MWOLd@mBIqU^=zI}$ zoenft1YM;Ajf$Ylbf6Itbde4;EQ03iKyyUUr~<_2|Ho|K|0DhX*78ZEAC?|14VN;- z=Zi~=Cl`KH_+VkAkj;N4e_Q^P+>dh~!uS7j*%z|QvXe7E$$U67H;f1mDbAu-7onD(BesN$frg|sAlU{aBAlOT#odyi7M z1du2u?LAZnA~DIjwkbFWwWKB4L#>L02q}q4$#J^f#1=_RN{-X*Cbp26 zWQ&l=ak|~a7E+V!Al+_aizFr`$LV$xTO=_lIZm^iK(9$+QgYlZ#Xtf`5|fhS26P}v zOiGSBPY063q~y3Wbs$MhN{;K+fg~|0Ij&6ylEkFsxKnkY3F63}qyrr!f^^A$TgHnZ zUGm?S14WP~`46FX96**(n;fT0+1qk}=+L#gwr&wYSL#5`BIr^bs7VA}r~_3*(3lQX z7C|FAP)P*M)Pag3Xu1wm5JBhaKzR{#h7ObyL0vjfRs^-`Kp7D^Xs3q*OBCW5Zlfu@R}t977$5wu7LI!^@Y z^8dG-D}r?S|69%xLAw0^EoX}$UH<=;vqaFKuCdP)LH#<=86xN`9jH$P_2@voBB;Uq z|C?GSHuL-c`1$|n_y47e&lPVK-~a!?%xLES_xXP-X-U>C;C|h`iNlHrW*WF8Qm87J^e%-y~R!K@q?AP5(Zk42@ z#D3kqGlBNXv% z(Ai2#l6~i#?BrPei??*b2q$MTx zeNP9Hw4}toZ|gvkmXz41%m3dhX-SEFU($IbX-SEFJ9QvQOG@l}NdZErB`wJoYWF>> z;2_kJlw=RJDiQ))Qi@0WwkTWzC?SHLQh~PIFM`(SK=+BDb1UX6)T6f;1U>xR1OAAZw`AsMU~gjd-(IHBF*jUH<=nD!%`B zYjINHhXsEBU#D`NOWLnI0f<`Ce&q>3)ROiqPXMGP*$>Ie699=xc98M}@c*&* z9`I3=Tl{x+XLdK)O@UMhAP@qC8N@WmYyv_^BM_31gd)X&6e$V_sHj+CL9t*%#ooB~ zf`I@DwrjgsuDxGH>@6e#m2hqR&$F9^_B?Zb;QN05_kBP5`P||;XTST*?ChC&p6~30 zbxAvs82}xRtV`PY6m~qaE@>w+m!J``E@|fmY(%U}+6hi2SeLXDn@T*+x}=@hRN`^g zCGEtf5|6VkX(u+7c${@fJF%(6lppusHYpBN~U1wDy@GFZ@N z43y4-YB5k63wjg-rLv$0Fwk)<=w1vohy~q&fsSQCH)EiIENBe|GFi~o7|38jmjfVb zwF3xb+iEWWIMixWh{Lp6ghZ{jKf7sX07D{BKNfTv2I|X#PQgIQEC~7akM#ck|B=7{ zx1M!LO&>w~YCY?cn%>1gtV?Qo0|T)xsp%CA#JZ%W7cmg)lA4~yK&(q@+KPc#m(;Wg z0Oi-L7cR-JFEu>^a0+YI3zcNwmmpF>&3e`)HQfUYi9oDNYPuZ*372F$w{2RBfrL!5 z2VIYWSeMka8UwK|sc97idYpAhO&4Pz)+IHakAYa1)O0omVqH?x=@^K0Nll9}5bKhf z7GNOOB{j{#K&(q@nt_2>m((;B1FWhI+VL`nx&;l0J z4Fk<*LGc)99t-M>f#$NHa13-Z3-Vx~IV{MDfo5}{oqu4USuAKT2Aau&e!@T}v7jaZ zM6GrPf$UoC&aVItwc6>#v2V2yi8^F8yJ?>QLn6?LEa(FaG>rwlje(}JAndn)k56Gi z+prN$WynxqF%avLn!m+BtV?SC0szq@ zS-2#-cGCPIz@bU9P)YXf1R~MgmUT(ZuLDCO5bKhfU&cVfCD~qZHNSv?giNvrJ%fQ* zm(<*VfmoN+T!(>Jm(;u-1Fo5@OlA5o=K&(q@z6=AgE~)t<48*#m=JNm$wOZklY+LOzfJ3cTs3fMQL6EG0#lA6b1Al4-{mtY{)B{dgepg!!* z9*KdHSkN#G)SCra7^oKu%D_N9SymcG0Gmi(71kx~iUdH^PJ~OcYbU#OfJ5y> zs3iM#0+DFbSeMlDD=;Jiu`a3Q7YxL@q?Q&8BwUj1m0Qb?7)Zz@d(bx+h;>OVpJO1_ zCADBHrR!Oj)Pk*)u4i3R3${|ao^?qr*h=Yo)+M!IE2ZmMm(+r+l+ss(bxAExV;?{3 zl3K8zBdup$Qp-kcM663{!G4ako^?qr4*?^hRx4bRU8`-m3*bl3JEyAl4q zOKMq&fmoN+G7kf>E~#Y}20DTL_^UC{Bo;Io15IQ><1x?#7F3Rb#7XyuAK`snb#DYRFP$36u{tW;H=l?fzfB$chufKOY`}}|1 z^`z^--~T_QEz=Hv{{PL2zxQ`=xUl94p_1&|Nozi^i3K%Jur8@J8w0T}sdX?0VqH>e zDh3iR$@YS))x{)T&`1)+O!v69cg>Y0rN#5bKim{EUHEm$auD1F(t}PfyxFp*SxoZOk5;Dmi^cV(WUDB=x zF%avLcCEuetV`N;CkA3&(ym)D5bKh5-GG5um$d5|48*#mT~}Zr)+Oy)iGf&`w5tXK zMX^Wr3JesN&6nc+jOPDiy?WTzuq9ywLU)AT6j~bU@;vET>M`7(yVttQ+-}!Xu4VN6zc2Kg z^>W>#{nh9HJ;BPPy;Fg0qz)%!lI<1O-ia7U*d%*U1qNbe(%!Kch?PluM`0jVChg6` zK&(vKdprhWWzt?h24ZE>-b@U{%A~!=VIWo}?KLnEE0gwOzqovYl}UShVIyK?(q8Nr zmrt-VX>U9*BD!=FGRf}JZErZhp-VU6lI$RwnIr0z)DYE0bFPz(A}_YTb*0 zgiNySkgY#qAYqg2K}{Hll}WANV<1*0wSI+xSeexN83tlyQtQVUh?PmL?_nTTCbhna zfmoT;`YHxuWm4-)7>Jcgt^dS8tW0Ws5(BX^sdY03Vr5cmEdZicTfns1)&~F%wc32P z)j}ldka=tyxdRvyfkv{Rn=w!>3tEGLMzEl(G0<=pbU6k(o&{Zkfrhc53oy`77IY2< z%3(ogV4!RkbQ%Wov!GKjki~*d#z0vt=p+m@gau8*K!aJ(Bn*_vf+{gk1`8?$K-6l} z31oLw3(4_=?*C5){{Ej9RuBCBzqNYlU;q1mwVX?GSlCfe%ef?ng&hU8oJ(?8*ilf+ zxg>{$90dh6wVX?GSjE8ML?F&3IV|jEi(1YlIjrH>h&Y$zu&}!}YB`tWu&}!}YB`tW zu&}!}YB`tWu&}!}YB`tWu#mep@@r~^OS0)E4hy;0qOhh`s3hAtGDe~Ul66V@7GlQ{ z>yq|ix5?JBE@|H^Y(&B(*-mZuVYkWF3YlaNnv9KzbxHfiV<6Tg?JLJXtV`NA1_QA! zXm%etg}DcFcum$VPN-}VXC zCG9%~7!h5#372HkYD4zL0vwtn3zcNsYB3T`ZCRJ}$97;y1UiT7M}K^TfzD<@?_!{{ zSkN07XgLdd1p}SQf?mWxXRx4WG0^EOXe$O<#)39sprtJ62@JG^1wDd+PGdp$W1z(> z=pGEThy~q_ffll$wHWAB7IZxZI)w$T20+wm7ZAv<)&6lYz@b(Y0h{(p1S!l=H1`G0X_@cDni-~W#Zclzpmix0d1e+T{jKe_)m5Ay$} z^GoL~&T-CA$1{#I9LI(n$>0C0IL8j_70z#JMC#bWaQIL8j%YUq;#`s=+JS*Mm*nXDI|kxhlB07g2I5?jqw{VI#JMC#=badcb4iZQ z-(eumB{@2OiGetmtff&SX7S?PKD#^YJKqUIqIG5yz!Q|!!&LufwFuA#bb4iXEP;PQA$q@s} zP2rMkuiRolxhZ6lJqVPWoJ(@VfO3;_Nsbs$ZgMWk5d+Fi&LufwK)K1eBu5M=H#wK& zh{5D$E$5OPG2kqTb4iYvu25sE7W6U(n$3bB-3NfE)t*QoyH*>08^EDfJB>K@trj9thn&i8+I7H?2sDKS zU4?-rv!Kf`&^o#6 z1`;yK9u$UwSeF#5V<6Tg#q7gCtV@dd6$7y@Ddrap#JZ%I77Wyb`_y87#6aCy&^H*U z8w>gz10}McPcTqd7W4rI>cWEF20+wm69{D2YGbwm9BQ@k#IbL+5Q$oC9J^^x14ANE zEDNf~Krt+6BL<3QL62jg&MfF54AhAQ{R0C!TJCHyqMXF%avL;vU67tV@b}00Rk^WP6PEYcLS&lH#t$K&(rOyBq_tE-CI348*#mxC<~4>yqNm z!9c7_io@>R+Q7P`IPBi74XjIwI|bV`)+NPZ_ik-qT~Zu!?-pIT372GdPE#TbZnNpblYNVp{X4mlhH37KRM%EmyfONtwefmoLm zmx_T{mlS7WAl4gf+HVTVjxx~#c#zxtW1jEgn?L@6#oPUVr5eNBN&L4N%8k%AXX;D--CfznG}CJ z24ZDW{8|je%B1+~F%T=0;#UKp{F;qICfQxO#a|3?3TrkBmt=qG29c;Au`((CY+y(P zVr5eN=@^KWN%4y@kdR6C9dZE%5;n;mGzSB*GAVur24ZDW{8S9Y%B1*-7>Jcg@f8?| zl}YhqF%T=0;zwa1Rwl*gVIWo}#UGD>SeX>>$3U!1iqFJAtW1hO4g;|=Dc%4;)M~@H zR@)2UP^%5)TP;GO4(VarNIWnk0=ZdGXAIF99H0kUWDxc2~8K96#v(|NpV)|8HbnQZ;tF^+whuRnGJb=-bxGAZ7>IRA z)k6RfUAPICWYqVIbBeC7g$WSeKM=76xKnQo=F}#JZ$} zMHq;6NeS~Y5bKf>W@8}MB_&M9K&(qjn1X>=my|F808y(IF3GOdCX@giYPCWo*|%DV zL>-cKNeLr?ArWXe+mD7}pyOGPg@J~#pbQK&lm!jKKshXE00zotLCF}%&w_elAd3Yh zVxTM*6o-L^u%J#DXfO-%VW3PFP*u<@lbxGCO z#H~)aB-_btH8ydp6EevjgiYM)SeI0dP2B2OmsE{S-0E1DRER6XljZNI@SeI0d zP2B2OmsE{S-0E1DRE1ZSClB$s@AYBBoE~&Z*8xiZ0s=*l`>yoO$ z86fMDs*xEWT>}c2WY=n|!Fe02lBzGo_BE@LsxQPqtV*gr7Xt~EWZxi{W1!Pn&{7Pv zj0G*kKucNBJPfpi1_)UhtfkKF}Q$GRjxb{9w;>yrF00iPaSld>+!|4$6Wx+MRT7>IRA{>=c0=E%Y& z+4Uv=qX38I$U-IA_a%r#JDYV$+1T1`9qW>^v9;Se;gW2x-2B+uZJm%w_8@HSwvKg4 zeq`;Ib~fvh{5yfqpFpfj@*}Ij1Y%v1|4VE{tV{A^i@N7z76S>HWDmL?1FMPMM%^kk6}0Mcwk5b>cN8i7^pi7%EUn3SkQ48D3Jvj z7^o`?>WhK8u%KQ5NHPE45}5yg0{s2It)A0>zyDY6bRYTO|J%f>r0lDJO)RL{#Hyrh z%x!LBRZ=$QHaD>@grB21EfJAp{l1z44o4W5=*m6Q#hmROaP z4W5>SO0vCj%LY$NtV_xUPfM&z%0^C0^r^8fDSIsRU8`eVQZ{&6VqH>p9yTJ@C1r!> zH`XO(gXcHaC1r!>H`XO(gXcHaC1r!>H`XO(gXcHaC1oS$H#)Lemz0g%L`JPvxFp+F zi`@D}tyZWcrqv=O+BDWBWrKHrur4VZy!%7AB>N5t-u)qDl068#`-62!+2GwDtV_zq z?*6D_T~ao7_eUM;lCrV8Kk8VQl#Si}Q8$DA)Udlh>ZY?G; zA4%Ob7KGjZUpJKnVfX*nO<_UU{r`27SrBsnKegHu2xQx8k-PS()lMP~(`peC9Y+({ zO#^SUoxp;e*k#Rl4&?s>168r0y%?yH1%bEORm#)3Y> zMpVjzJ_bOx^Z!o+^M8l0-nZD--@Dy=gSW)1g*Ako7M2n!{QuYk{Qr&aQn$SelHdrDiTna(c`@c(AWmm#-=K>yIRopnjsh;PfU*(6+&Z973MSz*m4p^}(( zf{OhT`>^rl5%1( z5bKh1qA(Eal5)Hlh;>OhE)2xFq?`~8#JZ&H-!KsClCt+;Al4;i@4`T=OUiDH(G z5-!QMLuNmVfrL!52Vr+4Y+_wfHgZP-?IYGDWj}#!8tam>u{#nru`Vh5er!anOUlM> zZP>)Rq-^ZghE1$X%3h0YS^|3D6# zjV6$7t3_@|pjO+NI83WWNc5%c#BSQ_*l`raf?mczku2y13>3kFp20xjET{nk`B+dL z2J*6?^%y9O1wD*`LRrv#7|6qd?#4iF7IYg1a94FqCcQqCf5M6657!F<~$)+Oa&zHJlhl5#NLwuyB~Ihb$T z#JZ#$%(rb~T~ZF_+cvQ-DF^dyn^>2WgZMVOauY7e?#e9(v1D}RCRCFBl^aB&uL$ds za&E-FBCJcwxfTPlE-B|q3?y8VeTTdh0|}XA54sQou`Vg+Tnxmzq@3j#h;>OhOED1Z zl5!SeAl4=2%)>yeOUjvrfmoN6Q;mUGmy|OZ1FzMx#I6B1vodKVb`7|hl}RhHYrxH{Oj?Ou18x>F$?h6(C359fShHEU zB>QVXh*VIsnUzU7zXHvhK&(v4`2_wA!4z01mZUC);Wv5_L!i+mEn&8#afqAn@LX^I6bp zU?^gI@{3ImFZp_Z9A3SF7t$*GyMe{SEyRJzLwQ-LFm4 zVw^8K&vy=X{OGvbG0_nb@_fiyf!qJ7#|KrB9ycJa|KcT!=FgtFZ1$|`nM;-y=Z>#V zPfZ)_`sHinep(_0U6C!R5!k6j3d$l|(zh5XXp3w~$St)rrl2meC4GvGDd>xANgraQ zpfIu}y@Qd0#>kfRIz|dABU{qT7%AwCY)LO*q@XmiB|U?Yg4W2E)Bup^ib!aqzC8k@ zlV>lQHGA2-nTLGs)&roTn$1ER4LAfeYsRwEPd(rpjG*Wk4~iqZt^2YR7!;9$=E#;* zjFE&o>L1)ZMSuD-A0r8Q#E^z#q@X;q-MVay6tqXSq`?>|sE=$(sTe8fk8DXMMhXff zTT(xa6f{V-q}~`QsE}+)-7!+oA=#1=Fj7z=*^;6$QqUsVk|HotP$SurLNQX%BiWKP zj1&|}cBC)<1W43AeK9 zSP;^B36#Zxkj_h>AuI@KyaXD|f{?yTpiCBov|R#aupp%C5-6PoAx)P+X)FloxdcjO zK}gFb&~YpX>9_`=$?Uq0$3qrarfea2*jWkr1Y2)WTx%>M_6JRTCYDe9D{q{t5=S4ZYW{2H-7 zVopT&@VCP+3qRiXv+p6_bYHypHSdL9E37GOUD)KXPN6S`t_V%{eCN5tQ|0lxpLL(% z9_aeQwboVY()9*?vEEPnM7vHacK+$Cb1rc9c6{Kt%8?iHUwW&*@=sySmY^20I}`63 z2%JEP6!b#2r2ZHwD28lFNf;?;hHObaFj7zr*^;_oq@WwJCB zEh!K9wh$>Oifl>9sxy&-rpT7$$Ho*?MYg0&j1+W5wxr`QQcxDzk_?O#v_-b0z8EQ} zi)=}~FjCML*^;^eB)S?B!pOd5b_PH+85Y8bY2(cZijK^nGP2z|LoXsN;z`Iay@<4sCyfIR10tQulS(ksDLknNBQ4-bBQer^ zo-_<2&ErWHMw-i$GBDD~JZTU{n!}R@V5HeRDH$Wp;z>O*(oCL|2#~1zovk^3-J9~V{!Y+}7*s;B`+T#P~|HAArBxGrq#uOAgHrI`Ne8}1^k%DH&mV_+s5-F&5 z>_}c@b(cs%w_{8CFVF*t6qGx*By6R4OVIAvlA5tG1@(?C=?9Dy^gFhsuQ5_k@Ys@e zV5Feou_gTnBLx+YE$MxLMBP_79-Hp#+T(o<08#f9j>oq9f+#vNgOs*fkgCbH; z^VpIe#7IHUV@q0xk%FSfmUJgZ5~jz#XS!~|NW%3nq#H0&(Dm4E-8C2~D0^&4S74;R z{MN0+NXa~@1|#+1Nh>f?5>Gl4BlYGdBMlVx(hu(oBrhgD0H`kf{51 zCz5UVbyWc%>b~6w#B^T>MLjc-+qz$NAzMeJt~}`kVDpI7g(o39ibx4OsSF!aJWm>p zk>Yq#0Y-}DNh2^)3{T3zNYOlL2uAA6lhOcEaQ^?OeE#3={~wh2|NZm-cK>fm{Qv&> z|NCw8|40AA{GYztLebcMw|zf8hpnk^;T#Q-o(A?HeUCUtLnP#vfkfgQ4UsltW8xeQ zk&xd8(wKy!vAZ53(nHvogrs3e|G-F`qoFa~g^@T%L!?_V66a`$bR$OM91W4K#Ymi^ zA<~r?iE}hWLLQ+(#}nshh=e>tgGijCArkTs4I*)lhDgh?{lqyMA}z&8oTDMqLV!e9 zR>INPTv-ul7678|D-;daeGwGxan8|1o_p#&z@Ui4IT|9}j*&P=L!`ABiE}hWx*j75 zM`PDBiL@Fc2}#3{R$(O0(a@MK#z>r_A=3F6iE}hWIvXQ#j)q9cPloBps$3DdWyDPTceHELY$kNr#O=wA39b$@Oi)!kH zq_Mps0#VdeI7{RE@p;U)*K?MJNSJM}=PV78Fxy_wSsEf?w!L0h8vCC4JYw5vj|)x1 zkluo3NA;Ygp{+y2J&lR8G(`FrHYU!}5a~IL#9105J%y1tOGBhB7>TnqMB0FnI7>q$ z?EZ#&&e9MGyT75Hvou6nhix5aX^4c~-%#I)|F$6aH&FMDB9d+QeIB_ffx2%bftcQqGuTJx<4Fw|$;*@KFj5##T91)JdD6oe$-|TG!$@wPbT>wF z@ub@@lFpNE!bloVx(*{bdD2xF$-$E@!$=`K=^}`<<$RuW9!5HkC!K|n&gDtVFwzR1 zvN!V4B<$Xedd|@h z3A=Zro^v!r!tULu7mmh$F8V%p??%0lGzj# zM5@Nd#5o!wO$JCbgA|U&uKWJ@emMZ5?kg0HefPys^x1Ka#`ohZm_4j7V7tmIm_4k| z=Si47tk2^~m_4i?$&)a9Sf9(2Fnd@(f+u12uzomC!t7!F@jMA!CK<+)5PL|+_)wmN z-Mdkr!;`RkH|n!_5_0bbZJnPdjRo2Yku08s+y+9VES{8yjcEu^IvyZV_Z>_m+wS{H zCIF)Dn@J$1`$8z%PZ{jiZ9`T}iImQhZU8oqNNGF?S$ri@Do?rs7*lZmf6(*)g7g2` z%=7<(^Z##|=l=!g{|o5%|Nl=t|F3~nG>xmU)zk)7(KN2YR#O{TMbo$nTTN|X6;0zR zWHq&*ra>qgyRT&9Dr5swH8hP2uxpP7*3dLA zz^*+SSVPme0K4{R5QfHf4%xT>yY^@hiiRO!*B%YR&@d$I+M|J0G>r?eYmWw2(KIf= zu00x9Mbo$dyY^^c6;0y;?AoJ&RWywYuxpP7R?##rz^*+SSVhyg0K4{RU=>Z{0_56* zdI76w8W;GnuEHvs#s$b_42_9ZG>r?61I9!xQz#nymf05oQ5zSAhH2vq5ENZ|u!^Q} z0l2ozDw@Ux;My{)Xc`xQYs;*nXc~S{RTE>&GCkfUst-|4)}b|Nl_`-}={{ z|3}wD!qM1$BX=jA0v!BwJtP#3{WlUr(bXR7Xj+mAfk6?8bu=wWxfqFcG%ZO(F%s)& zT9UFbl5jM(*F!By=@>~!8isT%Mq(XJOHv9(VjWFOQXh=OI+~WGV=xlyXj+oGVkFkl zv?Rr1B-YWiBt>B)*3q;ic`*{}Xj+n77>RW>ElD95iFGtBy??_u4JLcEU)kqiO8x!$_>7Y3%F9NUWo2?CZct$FX}n`FD&o zh$ppTq+@x~Zj3aLC+);YCQtefBN;sDON=ytCv68v)O}NkWY>KglivkE)P4IC$iDkx zDC%_m*sWWIoLh+0mnZE4HjhZjJPA2X5vdPP`W72g5>NU9BlYG)RQN@ zgOQHmNv~t19z5w~jMSYcy?~Lr@uX)kQX)@6R)NI)KQpA({`r5w`~P1(=I{$C~ z`+pU#aQzv5sh*_0r>)W~=a0@CoOzDjj&+U-hfZ(wm;WiP*(&UcKdv~=8Rwk2XyMEm z%Vsa6|IDghw0QQC8O!D^S}1m5X>PuiQC(G59sEC~l@*ogsi|4jxh1)kV{!}1D~nv| z;=grmbj?;_S^ROiEHOQ6KQTQuElonB@d?#}jPF32?f4pmaXHfQjmoVkm5gs}O@pv5 z{F6+FaZOj>iARw`|vPgMNNZ{F#fo4 z$Pf=EcI?N)sKqr6Ldf{zh9gvFh_n}llL7Z)2TVP>Q8f)h&G_Sn9nt8-=Of!vA!m>+ zJ@62ee;Bl-!p|UEdLYbpONFLEw)8-tYDF{3$xG(V zs$RBa#=@m@7A-k7&{j$-@^VW@Ri#%`BS{bTl{{)I6S4x`BrNcCIF%^E(*Tq-zduVw zp=%G$(S%3$d>=bkaE^vZ*e~rHI7dUI*RU~hj)q9sFYOzIqp_Qf5()dIeS?rR3<>+C zeFNucXiV5I?Hf2pLnQ2%_6?k)A<|>mXU91jB0Y$aI7dUIbr^|rG(@@+BXN#~NVi}l z&e0I*28=X|KQgbuNHclT6&UFxp0pAm(Y$sBk!#-2U{FLlkth8VBTeH;PhzC0JZUpVn!=N6G16q7^e9F;fhRqHktXq^doj{Po^%IB zn!uB8#z^CN(i)6Z#gneaNR>S4a*R~LlPhsh z=LS!{d$;>8cd6@l*F&x;H1B^(U#R!g-qdQebmy1O>uKKqljB}TrK4|1Q^>RQCeS}d z%~s(T`o<&#uEJ+8nl*dbyqVQAmncIMnbVUyT%^mf(a{W9m$n+PeOd=o1(_^RNWl+*NEo(@+m}9s9dwRNm$N@Z!cw+e<=MBlqWOzaX96c{B!+*&5gbKiUX@gUl z@d+Vt^t?mHH>PH*&;tIrJnZwZvI5ISs*i(k!VMfX?(oqGL2$G06RY#z=~6dFb`}?6|bvK z^A9;--CW9}@3HU??4d2;iDkS)hex=s2u`-WdM@)Ww~Oz1Lxu3yGXc|HCqz`+{(Ye72ALCaOuN|4`7+=h2Xfv>pPZ{11q-W z6%&fZhDWyPjEOZ{;{v=X_QO12Z|0R%R21Y@734GMDK%ST1L&E51>LbUeCWvOxQ_|o zAvJOEaWCB!<7&1>2Y_Ypcsus3a+LIWbq+wG&+Fh(icjy*tsYggwNrq1WGnyD4W_Y0 z;bY^swWwxmWPq20?7$A5Y%?orwnhX{kksiwwJp`RAD@TrJnH7*0V-ny%f}Z~5R<;| zWy~>7YW;3ANnzoV)X=w zykb32+6J2NsN9LU#eojz3eJl(`dYgKH0EnvR+3M?QM{U(e8&-`hPsX(8rbT?M_N|1 zRS!VN*ndg~^x}?j2EO1@Tdf_%u2j&({6E&47!vhl)bgmzD0k#*kxL@GL_8faE5aMT zK74w3C*RAy3w_z%-QI`1CsE+GM9{76?{Qqi7gyK?MPupSC@ZiI(-ipcQ;AcAb7(nEl-5CghlrFs5ypUV@!Re_0*%iEtu@CKy z9GINuKQeMQPDVb#_Aw8s*(!bum=V{LJ2w1j=|PL!cF!gW-oS7F;xzHf#Y+~=pFLCD zP)^cW92^nPqy_%x!@!X;dPL1u@%z5PacQD@(XzR-mmG4VsA!D=RUPPM;@gs$KIA}Y z8bS>5%RZhFyaiUgv0wyjwjS)Pf+2p>$1}(>i{2byWTYP`m&KjxA=fzuhD3c6^%~s+ zur}(vs98~?qf(>dBY%(lB63^gW07kj&yJiPSr|DmGCE>!#P*06A|8skCgO~UsSzV1 zQX(S5e-8hc?iIK%{L1hp;giCT4^IyF`dWPN`=0dOqFPmu63@< zU5i~4Tti(+u28*6e^+nN@6uQ5r|1>Br5~f~+7EP(!Y1uD?Luv?R;p!ciS$f%MGFYGuty6-i% zC^D_aW<_R?u}P8n#i&zcel|8LGCvs`6q(&dts=9_ctVkBG1ek9#Ld|G#*xDelQ+VWWF~ZRAjz09*}3cMH%-iGA`pjc_wkE@ef7j17n>cGtjtK zkr`mzqsXKfcPlbs#$Ad`sBxzv<1y|~WZcH>ij2#+O_9-!TNN42xJ8k18aFF44r8q% z6Jp#X&ve~q+^ER>Y22X5{9&w7WPUfUS7d%Ou2W=wHLg`;{%c$#&vf~>akU~d$XKn& z^fIneWO^D`Dl*3yS12+)jLQ|7?#3!brkin@B9mxbs>pOTRw^=Gj7t=m1mj{wCf>M6 zk%==dRAgd}8bv0?xImGKHqKXMIveLHGM$Wb6`3ewg(4GaoTJD@7-uUo;l^2tjL%rE z$asx26`3&O3`Hi?I9-wP7|RqHx3N@_aT!Y#8QnNdkLP-G?;^A(x##ymx)%9yLjR2nBMG8M)gMP{5aTahU@W+^gd#!N+~)Hq3z z8Eec?WJ-+bip&_JT9FxToT$hY8`Bh-QN~n7rpTD0$P^lr6`2C#1Vtv_n54+$850$m zk;Vi?Cf69R$c!+m6q(^hr6O~@QK85TGsY=0LydApCdVjKWU`G?MaFN8Rb+-3CGt%C z=f)UCW`{9ak@?IhR%EstqZFA>jUq+n6QfX(`HxYc$b4+%D>5G$d5X-3#z;lx10z?F zdEXeJ$h>C^S7cr_j#p$}F@`BJFB?M@nQcanB2!{yD>7pYzao=oSc=R@BTJr%``s9# z$ZR(TD>566Ohsmck)g=c8tID63L{OCImbvX8%#&$oFFMd#0kNCBJJbdRp>3rlO}M zzilddTJl?_qNgRlX)1bJ@*Ae2rzO8`DtcP-Bc`IKCEsBxdRp>YQ_<6sC!30%mOR>2 z^t9w+Q_<6s3r$5&OM25(^t7Z!rlO}MEi@H9E$LKK(bJMnF%>;6X@RNeX-V@%JuT@(Q_<6srkRSKmNeDuFaMqi^GLy}|ip&XSvLZ9d?4!s`G?NsW31)9a zX1v);k*P9!Dl(PkF^Wuu*+Y>TXLeU)%FS+yOqrRe$dsC06`8SS7e%JTOi*OTnDL6t zXfsZcDK=vjnNenpB2#2WD>8*Bb+5Oq%h#B9m(TrpO#;{Hn+dGXAT`9Bb@VWCj|oii~OOQDh9`7e!`(@v|b6 zV*I4Y^fz`ZGX0EQicDXlMUhE1niZKoMw23wWb9OAdK-<3OfTa{MW(0mgCcW`@x3C` z!}v~->27?h$aFIlSCC1G#@CA1bTz(GWV#q%Dl!Si7m7^0@wp-sXY5d9VvWxfnHXcc zA`@+Vs>pOUK2c;k8UImaqKuCfnMmU!MJB@dP>~5YK2T(Q#`}tl*LY8n2{YbRWI~O1 z6d8~4wj$#;-cn>-#+!TubTf4SYs->-GJ*&MYkKU%2af_ z0T-EyZZ}}4spxhCa!f_H8<1@(y4?W3spxhC(o99S8{jh)-EM$xD!SbO%~W)|0ZvoV z?FKkZMYl`YYbv^3N~@{pb}4&IMYl`&&Qx@}lygl*w@W$QRCK$PWu~Irr7SfS-7cln zRCK$P!KR|yr3^3?-7Y2BRCK!(x2foMDK1md?NS`3qTBWV-BfhD{y&?FZr8urRCK%k zKbVSc*Z*r%(e3*0Fcsad|A(fc+x36Pte5w}{{J?&C^Fm3&5F#^<|akvDYH(IdD7gd z$ZRz?C^8LZts+xzKB35LG1n_Ho6W}+nN8+nicFpPs3Nn`d_9b3NRi1h7b-GC%u^Ma!R9H7Os2U&k;yRUD>CWk zJVhqWoU6#BnkOqV$C+~!nL*}kMdny@mLfCIoT0?e-WRlDi6q(-UBt@o|IZ=`6X--gNjxon8GCj;HMW(x1 zDbFPDH7gXER&$&pv&Sq~WOkWlicF(fs>u9cj+JKy++c1O^Z%1WzQXVSe~a$^zm%R1 zFpQoM_-*)e;cLT}hK~;K?fcXBv2U|)jqg-np|7WRulFtQgY@?Trg$^Fp<&y@YQt8B zO%59r<_vv5^r6u6LMMf$g}ObTc{X{j^33x1J>l-p+_mn@-6y$+xV^5gU0Yo@xaPY? zy5jW~{T2OA{Vcsq@2j+I(E#qql1e#ZrlNscsn zl>b);|0J(3-M2sBp!@cVi%JVis|rhU$BxVxG_q`bMSkVk{iw=RRizgUDlICsGAozy zWqFxa<>~#2cB~DJMv!IYRW9XlR5!$5xr8eVZo_HzWqE^ww8geNB)x4*morsC)|pII zaA0TH4lJ#GV5iu^(%J^Lh^Yz=Y#~z>9N4J?=yOUt{BtVE&B`npSyeig_C{WA34H{! zlc}=5yt1ghXqFr|wydn8AlJ$&8r1gx(kf3HNVu%SaDlv)HNI->kjnkVGYu-vIJ`Lb zgtEb@RGVQ@vG|va%0BYV4rEj5{ex9W#}d#l0gf*(t|}(tU;zyLOKMu>48>Lj3k0;i za=NOrqN*^Tu<5B(Tv26ZRaUFUDJlgrP<5he!z&5~XNX}2HoT(1pH?|d38c~hP*hEo zSCx#XA2Jq=DH&8+S~7l8FCcAJTb<$LwBP5&<#{}9J&+a+f0vY z%P$-o{OH90x2(#sl|^vv$jUy(GV~3@o;+ zu|<`oaB)dx8vo8MkGQho>rA+*UsSg!myDyX8T?)t_14jEK1p`ws} zQJz{kf~y_8zjioRo4LRCc&;{Mf9)`?Hhq8XP_8y@e{Bv|o4UW2?zNEhrjC7xRgWl!E-=DXaZ5Bb_f37gQOFckQ5w zZblbWX&f$ib&zUb)_$omm@5m?GVRM!+b&#=@|XB)L+Tl&iPGChEx zsQvToX;%`wQawigW`Z)ZthBU!e$s<03(~sFXN09=%%2pQLUXqwQ(*2=WcrvbicD{_ zS)MWC%_c=A!rZCIgqw}>%z)p_9~GHj%^wt*J?8g{%rEA5ip&eQSEydDy@G3u(QIZ-2`xqG2(KX?+=ZL4Q~v8A^f)RGibh_R|+oyf3)oPb()moMo>HNz14E;61h0X$J z5Bkdj+Z?w!mN@bqT|#~ic|Gc5G3S?GbyQU376vb~EQ>CR-j{dA1FI_Elb>ZPiY6BN zX#y}dt#Z)B+>(;wO8=0`OXQQO18WP%SB)>t6@Txm@?v>s3sx5ulwi7 zdDp5as>;o!vIA!q@2CbKN>j6n^7Gqg7;nkXxj`sZw%5HaZ~YZTmE~hohm2288&p|U zK6Y?w<(u;6)K*y3UiOA+gcbh4OewW;P({J`Qp;cYy1e;U6j5bSd(ppDxN@;)4xDGd zrrMA|CC!Pea!2Ln(v0|3)t+fDtjH}Eb+4#CmiD^+Q|FgCR65 zs$Ek~--Y(=cuDb9C=x|&+wh{|OBJZ;SkHJt_0bB_{;ho8?hV_v@HxAhwypc8>XRzX z6N`GKd4tM}ODnUi%4gZawn_3cY$2^lh$V!lRfki@TemL_Jf+%@(!8Sf@jYo*(>AoN zb~SCIYEXUL;=S4jRIeKP*wjq=Djcwkv_zTT=wiVXLnYz@rx?1H1 z`!mFG?9XT);bS(NvcHms_^9e5p-m}jr#+%NqS}iH^swp>pqjkA!R?#ykZoC}zimq& zv@f&T${w&U%W5mT-@a@}TiJc~WrN$w{$XF1*;cmB=0nZP%k225?zP7S>S+JoV~^`N zHt)8_1?mWQm+DZWle$<-*}wFKwuASAc$y(CB;Kj|utasRAqEz#FSC1pQP;6&S0j~y{dyHxIkNIf ztdjQW6<8(h(aX6lZ`+@%>^`OTEpOYKSF5^rU~jfB{$FGJ&inV|jeK2TKi&YAO<#*1^*Ds!Qc> zU7lY`SJ4OYE>KpcS_fCw$lsZyYk5&cZhqT3)_k@~EM+Z_cfbx-+ev&L0}C!_&1I^B z>mw)2Kif8EoEZ?7;=Xp7LGmo97$m>+1cP=Kl|PFYr$C9_RIheHr$2*xInu!ivLshyFM8 z&Co|eFAJR&IwG{YXRqg7&w9_5p1Jf4zh3U&-5iiEIqGpxmKm6YT?fBoG&=&*t zsSe8#8`2W>iC76x{nN)qk6EQv(S5W>vE_FIgwDH7{7x*qZ08scg-|))cm;$ePU747N^SYci}!Y|TJx zB3olv6WE%b)_At2hgHSabh9einyyv_Ta#doV{2lpa<;}}m9aINRm#>lt+8xPh*iSX z^!(Er!`A$6jb>|pwTjuAR%;Ynv)d|SYg(*Awx-!CU~8JJe75EeE03*NWQ}BNGOS#- zCfypr)*NRIXKVUf$Fnv4tYK_TUu!5^)6>dfYkFAOT+J~TS$?i2@ng$kYbvcQwkF#e z!qvpTZVl#YV$ZfR*_!2623xbxN@r_ES!rxdp_R(jM1O4^$JKPMv<7iCQRi7?H0{sb zQI<7OzDz=oskZ_vTphFOKjjyA2N%+``VXeAeZ}W@rmlUt>Uf_MjEUE2MaIgI8 z?Z7e`T&sMoCs@^v`c=Nxv%iQy|5c7Ya4!)plm#zj_b7L7dtKZ3e_?^atMQ+iy7t}s z6I0i|dv_~0Hj9Kna3gjp_nN3_+kh5ZP;l_g@+q$nLs=Frxg02oniLxls4dzreRkR~ z4;4?1Hq0RhFn^RYNdgpSiKQV@Amaa56%QFw`MsPOtPO~RVBL3W=HRqLm_Nv8jR6Tk zr3ZMGZ{>%5pmM*p_(nbf4paqi3nW1l6fom~(l+f-1(deghf4XExNQI(=A?otYkT8y zOj+BTmdp2IP_5B!+^^ZblJCV}Wrt<^TK-+GtO|5Warp*2g|aDg)~}JHX13m7igiG%wzcRnqFtr`(pet?zsy-;2Tdc-!r+ z@5(>8{d4xfn(W71Rba1t6cWOnFMGXh%@Xtf1tid;wnVLoS{zjpl@g^#?udLca&6?Y z$Z~q-e`v&45zj{47O^~{Dk3!^Jp4Pl2jH&o74)S4O#0h^jlOMk7r+I+sXogW>uvGA zM(Y3a?7(juyvjjt3kU)6@Egin{_-D*@bo>3y&D23vEF^*UQ~ zxAkwf<}T|sw&qUjRkr31>lL=3CkeM-GW068;YOc0OAu~0r ztp>K{DyyEYxzgIg)?8t2W@|3DHnBCUtU9*lGHWASbE&m~tyyW+vNe}jPp~x?TkF}H zi>$}lnhUMR*qR#aQMTp+i)1i!Y@BaB%+{P|J;c_WYdy%;tgs$nYtFImXKT)~?qh3~ zTmN8d&al?8HK$wmvNg-Bd)S(#*4=E)66-FuX0dfATQlFfgRPlo-OkpWVBN;nR9UyO zH5Jw^Y)yf6Gg~v#TFchtS~syZBdi)oe|QwVJKzZ(YUK^s}yHYx-JOurCc!$Ft%AlW+ z(@T@&St0NIe{24Kg;uV`IJZ0Rr{4k$cKqsi(XrYw!;$F-p$!=rGSKCZ5kGvADgM$i zMf5|p!qimp2N4U4s|ICIvG`>*TUL0p zHX2%UF07)TU8Prx8(#u{&{6y%te~taG?QMY+6cwVs@&Q1qT$eci5qqfd_RvxFU>jf zmsYue7iReV9UIuLJF2|Ejye2=RpG#nIq+qf^v5x)B8Sq}<=Jmt`-|H5OvgaOfW0bz zah2}~c24{I1_m6#eb0?Ve}A?{_xEFKG=E>V#_3PyY6fiZ_hD<6`;*w35Pxs3CS{+$ z7hChNzb9MskpCFA=0SfCw&pH>cedtEe>b+~4u2wBbGyGQTXUPg3tMxmKY^{e#UIbs z-0Y8IYu5T>xtjj>_+z-5e)0Zjwnp=J=4$$W;P1rNyyuT%Yu@okvNhfO>~}f&EPpu1 zNnY;vaW#Fe@q5{ttNmeY&1!!rTXU7)!`58sce6ED_+4zx<$j&5S>@N*n#=r7w&qg5 zgRNQV4`FLAvG%bw7h8X_H5XZba5cT(v3_T3-m-pUYu>beWozEB{>#?9X6=>u0v+U)E1-%}ds9w&q1^7hCg!)xy?1Z#A2`j)L}u)bky>aDNYnl08>Y|UotOSWc{^#xl~ zXMN7rY_xW;H5;tY*qT~vJ6rRF^(kAk-ui^CdEELBTl1LpF+ zTl0|hK3nsk^&VUEfb}k0bHDWtTXUcFHmUt&)qU{oac|T+Aq62fhD6;Lbr#wGp7iVg z7b90k&WOy6^hA72_x`Vl7)!tW|2lkA`1#@G^qjxlzUS#Fe^Yz|y?=OL^4{c~>+KWv zY1mz1CxvB%IYM6yy*#u$G}iNx=Vs4jPdE3cWc7>OZr4k$OI^kE+y0mIi}XU>tG%J! zpiR+|Xbyjev)b9)@wMX~N42A8$PO9`{ZmX+uxW}ZSb0U+=<@Le6*PgbD9$Sr6Vp=q zMOQ}ksN9Ou>b$awih{hVg8b_8iV4NjRvk~Iq9Y|0jw}tn{PN-S^5P?Xd3tJETJZH( zj-=O@*}T52B%j7TF}Julw{-uOl;;v47@oHB=n#RO(T2DrhenZWGm7B;>)4S8zWt@c z=(Pp-YfCFDD(QDhS;6hUn%n({ymQB^^U6xcS57;d+x@DS=a%GFj>(;NVIB>B96os2 z5pa0-QYEL z+HKhP$_^X4*(|N$l)3f%!amPLgzWhw!BbC0q z?Gw2G=mZD8KJeKF-}-c*6CC!^wzoYWXk7=sc7M}5;|K?Qz~Q_62nQT^Y1@En(&%6l z59*aIxr^2{X3S{uAqAHI$rzMc<{)~7cn~c2iojD0ErUA(i$`q57p^qg~ynSUs)%YVQFDC>CLKz0!quQia&yPDVb1J zawO$dRb_PH5TiQ(AF|1X#lZtC;FpSz;C)D8jXHvI5>k0bP)w*9zi*MaH8+1 zqr=j}66q=bKZL#=+7NmVtp+R!olH;vGeV<1zk0s#yyB_#+~T>=Gv8C;$@V09yzbrZ zkKNC?A97#kKAWEYKiZw{PINn6Ke*m@HMs6^UG7@qnoNHOz;H$Dzv^Gm-vX%BZ_zK* z=j#=Eww^>Q3A^bDfzN3VY1e6IYbR-=wRHM>eop5P&bOTn&U>7fJC`^oJ4ZSVXEfa> z@P*?QN3G))$AymhjtWP%BPr^;s5fcj1OFtrdIz5jaK`KvUZjzgE|z@oRLaG=8=2kj7W*A=3C&+CFLgO6^Z+ z{0i+4Y5a2ScWHc;_M0?*nf9wR-dX#vEFQf_+bfO#qP0rnKWlrW@t?F`r19O_&(ioV z?I&rxMcXZnH*343@g}WB8sDikOXH1NlQjOLwo@AaL2H!8zt?`0#=p^ikj6jKzL&;R zwC`l`&ZlVKO5=01Z=~@m?Q3a#g!Yvz-sx-YOKJQ|?F(uAbM13!e22C}8h=asOd6k} zZI{L;YoAKv>xc(nGuG~QWzPa5x}y(^7J zY41qmk=onRc!c(rG#;+KDUJKIH>7c|_PR74ru|zQ57l0i#y#4r(zsiDMH+W$FU#Ul zziZp1@!zz6N#nn2FG=J7)n1gw_h>Ij$v|4FAQF}rf@2ahr#=B^bOXCUJW72rM_NX)-r#&K#$7&Btt(Bp)FEmWo1meom*E^ zzdSwNKV;fHf8q6M8UAT^AN}jovWBEjyX!B!en?j4v^)R8>(d6OPP>C!kUC&zAGq%W zJMZD6eX-bc4;|%;1H0|PqkXa1XAht+&dLbfSKPh}0^5B5(Y{!0^L zo)xf#?jpD>Y;o8mdR{d&u^vr;@p%>6o1Ik0K&|aaTo)&s?z_XqQ=-C0w zJ=5vw0jZuY^!$MD+;7qo1nzQQM$ZtK3ISV=-1E_1*Yqx=$Qgt^bmTgz?<3@dal4_+G2XLzz8jco-MG~xr3fAu->_r zo-Z)hSx!$F=;aKhXAFGkc$S_raE)U*J!fE4)OYIDgM>45=~*)2bX|IuOjxE%&yopC zb?I3$VTmq1OD3GAuakY=35)f6rSV1jJ<|9>{cdUeRQ)b#{1p98X?%fxhcrH4zg-%i zr{5-x&(&|0#!uF7k;dofH%sHQ^|jLYEd3^Fe5QV*G=7qPgET%vUn7lA*RPkxtM%)o z@e}oHrSWO{HPZN0{c34^ioRMJpR8Xcjh~=jDUDmYw7(=|>6c6Ed+DpB@t*o+()cm@ zrP6p0eWf(sUB5&c@1|cYjVJ0CN#kAh3#IWcdW|%mpkE-3$Lr@y<8k_V(s-d{0&idKXcqjcVX*^0_E{#X(XG-G{`We!=M?YN}ck9a(@ukwZOJAahpC*m# z`eJF^p)Zoft^(tw6xLzrZC+HQ@c)UJN8jsV< zrSWLJOd5~WOJ(ucJ^EN_{7t3MBaQz{A1#ePuNO<>&*`J2@qg+?()hD_p)~%m zULcJ>q~}ZH59)c+_yhV#Y5aaYR~o-hA0dtZLmw`UuhWm0#_!dKN#pnEL#6S%^&DyZ zE1<9FzmG=96DC5_*v50S>#=!2#4YxPWNe6gM(jW5#ErSUm>nlwI3PnE`J z>c>grC+UNv@niL4rSXCKKxy36O=;ZF4QYIUK0q2z(Nm=H{(66Dyr14r8t<$3mBy3x zWNEyQ-bWfw(vzg|-g<9oyqDff8t7AtUC_PFV_vw+c zc*2?bLx0cz|KFSccN^@Ip3l0axuoZ_Zl+6mKI>+ zEb(lY^n8|hmP>j*OI+@fp3f4`bV<)=iD$T^=d;AqUDESe;xd=?e3rP>B|V=dE^$fE zXNjk|r0285#V+ajEOC)bdOk~B=#rk#5>ItW&u59JxTNQ^#04(t`7Ck1OL{&_oad6B z&l2alr0285lU>sDS>ha*^n8{$+a*1pCC+k5&u57>XM$%5~sMN=d;AgF6sF!@dTIje3m%LB|V=dPIO7n zXNePB((_s3c$f5imN>>GJ)b3xc1h1?iN!AI`7CjiOL{&_EOJH2&U1-{u5f9*z~z(1 zhr7Je`0=hVX?&O~R2m=Z@<`)@Ty9ys>n|>sEZ$|0OP9tQU79rhqsu9c|KM^+8lKx+5e1^VP8lSGWO5@e~9%=kU z{TFF`n*OsiK2`ro8lR%?mc}RRyQJ|G^cHD+lHM$hPt=>F@d^4)X?(oiD2-R?KT6}3 z`VZ20h5o%XK2HBm8ZXzsmB!2TZ=~^3{cCA_tp1fWUZQ^~jgQg4kj6*rpG)J#`VMJ) zl>V7CUZiiA#tZdNrSSs&6KOnO|Bp1Dqkk-oXXzhF<3schrSZY~2eNoVv;Mv`-lV@L zjo+=mD~;c!zax#`slP3a-=V)Hjo+@nDUIKzzafp^s=qFc-=hCp8oyb8O&VXTzbcL2 zq`xAK->APVjo+Yelg8KR|B}Y9*I$yxuhUCdfCIaqRbYlVcEV_|^dlubLz&(p@AmE-w*B5ZlqU#B`XVG;9+_UI90`6IKf`EG# zU0c9Ci~dBwJ&TSPaL=Mc0`6IKP{2Kl4hXns(S8BCdf zY69+AbX5WOEV_z-dlp?;z&(quB;cM!R}^s1qALivXVK*a+_UI%0`6IKSpoMfx{QE( z79A_#o<)}yaL=Mk3Aks`B?a8G=n?|%S#)s$_bj@YfO{5QRKPv^>;JIg3fj5o!ov6H zg@onk1%+kk1%##OF~Sn`{K8`NXkih0K4BqxUSR=x9$`LuZebpJF5x@$oWi&0IfS|B z*@Zdi*@W5XS%q2XS%jJBnS~kXQNna|n=lRC5Yo_fAr)N{QqWalD!L*hqsu}Px+El` zi^3FiL70plDNI6-5GJCB3lq@8gz@N^gmL8gJ_=*eKL}&c-wUJB-wC78-wGqq-v}en zUkk(0UkSs|UkXFf{}hIxzYqqa{~-)Qe=ZC}eM=`YoXw`URmY`g!3i^k0N8(SH`Ypzjtsqwf+r zq3;wrqVEvCK;JHOK;I^`N8c*6L*F8_Mc*v6LEj{Nj=oW7jlMzn41K-uDSEol3Vof> z5`C@E0)36p9Q`Mu8G4e?6g^RBf<8rPj6PXtgg!}Vh(1whfIdN}k3L?ghdxfIi#}GU zgFZ$`Kp!pCMjs`7f<97+CyzcW-2U(R|KEH5kC`mup2bWOanE8VinwPn6GYszn9(Bc zSJ&Q3#+_M;`h>}=2Oq_^&7E?>aJ&UO+;-1CS5OL39s*AX1 zG1WxevzV$P?paI~5%(;nvWR;YQ%S@WB$p2buUanEAPi@0Yo#662CE#jWVXd>=ej4I-u#V8`~S&S^=p2bKa?pgkhBJNrKFGSq4{2fHxv;6Hv z+_U`cMBKCdZAIL({B1P;-2MiDdL{xZy|tS>x(Y*dZLM5S9GG+5gq6Wq8+`q z7>E9eSPMN~tce~HYoG_k>gWNn8oFPsitZDupnJv2=pL~Wx+PXbcZ(I!U1E83Q!Iz> z6w9JJ#4_l1F%~^eER9}EEQMZEEQwx2EP-BKERJ4HEQVfHEQ(%5EP`HHER0@BEQDTB zEQnq~EP!5Kj6p9a=0`6pMx&Pz^P$IzdC^OYdC*IVxzS6CxzJ09Inj%YInaxV+0l!N z+0cuKS85Eqa9T20dJOjUFbvLeC_; zB#*u${E2>Bc!7RP_yhf>@ErYy@C^OB@D%-;@C5y;@EHAy@Cf~~@DTly@BsZc;Xe9B z;dk^4!ael!!d>#1DdMRAp8x;7=l|l3B;2#&4JF*O;teF+v*Pt7+_U2KB;2#&btT-h z;&mk4v*HO7?pg8L67E^?PbA#4;_(vhS@DpBdsaLs;hq%_NVsRk{Sxk3ai4^HR@^J$ zo)s@9;hq&QDB+$J&nDrX70)W+o)uRm+_PdwB;2!N2PE9HVznjQvtoH9+_R#OCET;3 z%O%{iqVpu&v!b&k+_R$7B;2#2<0ag)qKzfov!c}`+_R!pMclKZRYcsgqLCu*S5q!vm*CI+_NHgMclI@w?*8uB5g(7v%)h(+_S>dMclK((?r~}!u>_uvqD}G_pFdd zyhA%zC{DbMUQ4`%UQ@h@UPHWrUR}J7UQN7)URAt`UPZiuURk`1UP-)!US9kSy_|Rv zy{vcvy^MGsJytx2URpehu8C*RRq-@=!B^rb^e5s;^gZGU^o`h9sN^r z9eOKqEqY6F4SEalC-mmxYV>B}kLXRsRp?E`mFSJdAJ7|#E6^K?-=jAWm!sDgmys8k zE-pn+7MGwWiHp&PiHp#OiVM+)hzrmMi}TSti}TPsiQl2O6~9GqBhE#yEzUvzM4XKt zFU~>_i8IlI;tceFI33+DPDA&JY3N=t72PAIpj+Zpbhns{?h=#GO)(MODNaFmh?CLn z;w1DqaUyyxaRPcxaXfj>vsEEOwxTdluVT!aa-qOu{{j{Zzs| zi_IRl+?hbw$EG zD|J}HJu9_L!aXaMB;lTw8Y|(Rl^P@Ao|PId;hvQmEa9G&>LTHumFgtno|Wn-;hvT1 zAmN^sYA4~Im1-m5o|S4Xji#L|RZJR%UQ`;1UPKy!o=qB#E=j}CMQJFyAPpfe`B)l^ z{y-Xpep?!depDKO{;Sj<{fP7p`eEs7^g~iV^n+4g^aD~K^!-wA^nFq<^u1C~^gU7! z^k1az=s!!{(05B+(RWE-q3@KwMBgEGLEkQQM&BlNLf1gT7Sy9DRw@8hx?!8TumWQ}l&WEA$0YOZ53t3-ne}bM%%{GxWw%Q}mG3 z1l=h$Mt4Y!&`U@S(F;or(DO_6(Q`=k(6dN&(G95%d5Mow0{R=NHu`Jn6ZBV7Jo-y1 zg#JtlqTi4L=$9ow`bEiyenIl0pO-x7XCw>#xa3AZB)QP{N+$Y`k`sNA?-6(x^-EbaX7`TyU0 z{;xhr#yzV(P{uv0K0wAjtKMJ6J*!?x#yzW^UB*4Dc1*@St9DezJ*&1x#yzX{lZ<;- zt&5C%R;`YVdsZz$#yzVh%D87$@5;DmRTs&)XH^%jRhl2D z^0kb6R;7iEdsd~njC)okyNr8QC7X5zm;`Ao{m* z0ra_Y40;neKYA@W8oj2RkG#S&IWPKIIS=|7IXC)gITw1eoD)4s&VimNXGiZXXG8BL zXGQNRXF)F`XGV{eqtI=#4c(9p^74me9sQ83p&yi0^aHYjzF(Hn_sJ6a3Ry(|UKY@o z%aQ2)VH^oP<#^kvco^rg~y^a;{A^zqVJbgy&<-6NewFD{)zFD9Kt50g%yXOfPS z$9|NKp?{E$qQ94ZMSmw9L4PY9Mt>t6LVqnCM1Lh6Kz}LiNB>jWhyFs^i~fhS2mQJ9 z3;HwZXY{AiZu07b<GVWR2OBwep?oS!_EbfJjdlvVHjC&UMT*f_% zdnV(a#XXgA&*GlQxMy*XW!$s4M>6hN+(Q}nEbf7fdlq+J#yyMsUB*3&yC>tG#od*0 z&*JXLxMy*CgYyPU6paq;;zWJXK|Nh+_Sh# zGVWR2Z!+##+(jApEbfAgdlq+I#yyKWC*z*Qot1IV;?BspXK|-x+_Sh-GVWR2Ng4Mn z?u3kc7I$36J&QXgn@@Dj1@+R~l@<#Nw@&@!a@_O{bayohec^!I; zycRvbyaqj5{s}#wyc#`B{t-Qsyo$WmM|mas2l)r|_wow#o$~kSJLKi)+vR2G+vKI_ zTjeF_Tja&)o8?95o8*P)8|4M)8|3-uE9H6UKgi#qFOa`QpD)ivpC`{j|4yEb{;fO< zeXcwceU3Z>eYQLueU>~8eWsj--a<}AZ!V{xHhc8iYVvsWs`5DUny=-t=uhP_=uhO)=#S-5=ojUY=qKe7=qKdi=*Q(@ z=t=TW^h9|G`V@IE`eb)6MeDV1N}3(JGx8mMqd5B+!g(u{1y6J`AhUGau@W=a%c2Qawqgva!2%) z@)zho$Q{sE$nDW*%k9u-$!*bR%5BhR$e)wjBjtDhJ^%lE&;QP;3htRRS;0MXCMmdQ z&O`zXITaJ%vnakJ#)q?xM$AN3htTxzJhyZ|6Rd7 zv)@y2&+K;<+%x+f1^3K;TfsfE-%@bT>^BwMGy4q%_so7>!9BBIQ*h7hR~6hd`xOQE z%zjzHJ+og@aL??&DY$3$iwf?U{epsfWlV5N)z<$N@MhGN+a~G zN<;K5N(1!GN`3TANq;38Jr70_Z;~ ze)Ls}4}GQLMgKwZps!FY^zRin`f|mEzDzOEmnu&5C5i)mv0_JGq{N{wRBE9wP->#j zS8AZoQ>vqXr&L4#R;h|USE+(NN2!cHTd9OTOR0!HQ>lPHLn)6wT`7k?O(~0>rj$WX zRbtUol+x%^l~U-*N=fu2r38ASQXGAXQVe~vQWSlXQUraXQW$-LQV6}IQV_j_QUJZU z5`$h$$&X%CiAFD?Ftg7OknN?KWGqbXa zduCQranH<(D(;zCLB%~Y%d5C&W;qr2%q*+oo|$D-+%q#)#XU1itGH)oAr<$`EU4n1 znFUnbGc!iTJu~yGxMyaxihE|}Q*qDCyejUQnMcJvGjprBXJ#%H_sqay`%&aQznVCh!Ju@?_xMyaRihE|-RNOPuP;t*pUBx{!H5K>FR8`zFQ&Dlx zOj*S}GbI)G%oJ7JGgDA;&&)^__son?aL>$e1^3JhQ{L0gnVFP#o}s@`o}&MuJVAf1JVt+}JVJk}JVbw@ zJV1Y}+(&<;{Eq%mxrhEhxr=^Zxr6?@avS}gatr;gaufZIas&OgavlAaat-~aauxlC zas~aeavA-SatZx6}d%1QJS z$_e!2%5n5#$}#k#%2D)Rm0!`1C`Zr_D~Hh!DTmMxDhJUICz79ToS?yshG%nYUEjGxMg3duHBHanH=_ zD(;ziO~pMkud29b<`ot9%)G4Po|%_a+%xkx75B`%sN$ZP7gXFc^Sp|CW}Z`V&&;zb z?wNT;#XU1mtGH+8DHZq3JgMTInI}}-GxNBLduAR}anH=7D(;#2tBQMO9#L`6%)=_~ znR!UXJu?rgxM$`875B{Cui~DW`&8UBbFYefX6{jO&&*#`+%xlM75B{Ct>T`UyHwmW zbEk@XX6{gN&&=&A?wPqw#XU2(s<>z778Uo*+^piBnVVGHGjpSgduDD>anH>4D(;z? zuHv4V>r~t`bFGSdX0B0j&&;1x+%t2vihE}MsPdkzQfK4NtyE{BuTW>Af3MC!U#?C^ zU#3n&U#g~|FHuv`7pp1gi`1#;3)N)w1!@xdd^Hh$o;n5nJ9RSpx9TMHx#~ppIqC%T z+3I-oS?W0Snd(^d8R{7H>FQ|oY3eBSG<76;syYHaMIDYlRUL+&tPVv_Qiq@?s)Ny| zsDscas{_#|sRPg_s{PR?sNbNESHDIdr}jf1tM)}7qxL}`t@cJArS?J}srE!4q4q!@ zu69QsrglRgs&+*mqJD)wSp5=xklF=(pxPOIfZ7SYzuFP~8}$qHuhkCd{nYm8ebsj8 zeblz-z1248z0}Xqd#bI`d#InGcUM0}@20jw@2a*$|4MCv{-xR+y^Gomy|daBy_4Dm zy`$O~{R_1bdIz;3dV942dONi~dRw&~dKO!xtn&|aZCwg7gfnG})b+%xNU4fo8tr{SJi zcQxEI>yCzdX5H3s&#YS-?wNH{!#%TZXt-zAbq)8-x~ActSywgOGwX_mduCnMaL=qu z8t$3(n}&O4UDR;TtP2|MnRQ;nJ+sbfxM$W`4fo7Cqv4)er#0L&>y(CjW}Vb<&#Z4X z+%v1IhI?jp)^N`(uZDYOc{JQJ%hGVqEVqVxX1O%nGt1O)&n%~gduBN_+%wCr;htG> z8t$1@OT#_0YHGM=Rt*jJ%&M;8o>|qjnzVCPRjmek6|FjYWvv=|C9NuYMXd^Y1+6lA zd94z9IjtgkS*-$k8Ld2etX2-av{n|qlvW14q!x=_LMx44Tq}iMOe=|AR4ajAL@SP7 zSSyBJNGpn7P%DC7Kr4(MqZLBWuN6d()(W8K(_+x`YWdOgXwm4owS4Hgw7lp!wLIuK zwA|>~wOr`gw4CT!wH)YKwCw1awQT57T2^$MmId9=GNbES6uPF_$la|p1HHDUqx&?C z-1SaV(Qj%B`VCD+Kd4FQ12hr6izZ~?k?7^L2=x3~IC``ehMrH$gq~CVh@M0JfSy@> zj~=DIL$|4K(GB$tx~{%P*VI?&s`?ULQU64j)fecJ`UkqGK1UbSXXugYQ}hV+33|Bt z7(GmVgq}%#NN#>qAE19w@1wt0e@B0(-a~(@-bH_--a&t@-bR0=-a>z=-bDXXy@CEh zy^j8edJX-#dKLYddIkNddKvwRdI|lp`WyNq^&^*s80^&GkNPV4jE^Z&p1 z{O@_A$qp0(>m^%=ai0n<~gb3o_S8_xM!Z@I_{b0n2vkqIjZBHd4AP#&pbzT z+%wN%9rw(0NXI?%9Mo~oJO^~#GtYh<_sp|T$364x)p5@}dod9R&kq{znP-KDd*=CG!#(pX z*Kp4~sT%H?Cq=_O^Gwxn&pgQ*?wKb^!#(pPYPe^fDH`sXXR?NS=9#47o_Qu}xM!XT z8t$2AyoP(`8K>c%dB$qEXPz4c@22fQ@2YJ_|4Q42{-w4Ry^FR5y|cC%y_2>Hy`#1f{R?dadIxPi zdV4J$y`8oWy{)zuy^Xd8{d4Un^w!#H^v|>((LdEzp|{djqPNt3KyRU~KyR*nkKRmM zj^0#ThTcS5ir!dTg5F45jNVXNgx)|~h+bb?fL>3Vk6u@shh9hf4n0Bp7QMDM7yT1$ z4tl&c8$G1WLJw*)(F58HbiXzo-KR}M_iAbA9xWB!(o)df+EjFxmW*y{N$5^35#6Cp zLAPs@(c`p9=(V(o=ry$o=ry$Q=+(7x=+(5b=vB2b=vB1Q=(;uvUDHOQtJ(;3MH`MT zYs1hbZ78~^4M7*Q!RV3NAoK`rAbPkq06k3WkDf{UhTQt7eU1J>>qqX5)U*Eg{QvJg z|N9H;xM%)CI_{ajppJXyFQDU|`D1k4Gk<;^_sk!y9}Y9ygKfgKaY-k=FhF; zp80d>xM%*HI_{Z2hmL#Z&#vR1`LpS`Xa1}@?wLP}j(g_MtmB^fqjcOezfH$I^BX$u znP1m&&-|K>d*+vQ+%vzVbPgV4?6Cd@4b$D=6k2(p84MDxM#jMI_{b8wT^q{d!^%^`CjU{XTCpm+%w+`9rw)l zhmL#Zd#>Z2`JU;xXTGO8?wRk2j(g^NtmB^f9_hGezK1&QnQyj^d*+*^bPgV z89MHnZ@P|q=9{MDp83-BzO-|`RJ{*+iryQ2s@@AdS?`ISr1wBi)Vrfk(Yv8f*1Mul z(!WBVsDFt*LGOY-Uhj-PQtyO5Lhp#)Q~v_Jhu#6byWSqXo8At+tKJsZ+m-^@E zPQ5j{L;noju78Rir?*0{rME<{s<%L|qBlpctT#iiq&G#cs5e2cpf^S@uQx(3r#D0| zt2aO|qt{1|)$5^`*6X5|((9m?)DzH4=(W*{>z|+()8o;L>LGIPc|C}JRu7<`*8S)w zbsze1-HU!y_n;rqE%ZaW8-1|uLLaD`=>2sk`q#Pxy{~RZ@2$t7_ta~lch_s8chzg4 zf2mhTucTK)uc%i=ub@{!FRxcdFQ->RFRNEXFQZpLkJZbgm)6Unm(t6km(rsqP}^_=Lco&#Ohvy=Oa=&S#G{{Q!${{xnR zdlqmTxMu;EfqNEk8n|Zxhk<(*up78%fj9&AEKtk9Jqy${aL)oY4BWFobp!V-P{qJK z3sg36&jOVU+_OMM1NSUY!N5HWls9nC0_6ucU`3>B&K(v8- z7RYDdo(1w6xMzVp2JTrPmw|g0$Z6o71#%d;XMyYn?pYw4fqNFnYT%v)vKY8$e>v`1 zAhUsc7Kk!%&jL0B_bgx-xMu;~zS2JTrvHE_=Yih+9;kPY0kfMnpF1w;e)EFc)T zXMsoq_ssv%z&-PSFmTWO?+x5D|2qTs%>UNFJ@Y>|aL@eD4BRvSQv>(Rf6u@@^WQaa z&-`}`-m}X_Hr%;OMppE*Mi%rlMrQQWMilxf!-js+FwhSgI{E=aL*HYl=)V{W`p<@p zzT1${cNrr3PD4Q7VML;DHzLrt8R6(#jWF~rMke&l`bYFl`Umul`g`;Z`aAUX`djpL z{SEpm{WbbZ{T2ET`b+c``k&}a^cU!h^*_)T>Ce#@>d(*@=ugq->rc>U>5tK8>W|Q8 z=nv7S>krV=^!w zi9S$2fj&S#j^1BChTc~{irz>66}`891ihDj7`>-{2)&1X5WTy80R0PnKY9m!A9^c& zFM3OT4|;R`7xZTO&*)9{-RMp9UFePVo#>799q0}9?dT2kZRqv&t?1?SE$C(S&FE$H zP3W=uM)cD92J}+;di0WdI(i9x9eQznEqXD14SB$0)cNoE|KEH5PdI7do+X?xaL*Es z8@Oi)#|+%Fgrf%TS;7$m_blPCfqRy4$iO{IIB4LWB^)qt&l2_-xMvA_4cxPYJqGSs z!Y>ByS;Ef-?peZa1NSUpmw|hhu+zXjOW0xHo+WHIaL*F98MtQ&TMgW^ge?Z{S;A%m z_bg$PfqRy)(ZD@R*kItEC9F4a&l1uN+_Qvr2JTtHS_AhiVU2-%mhh8-dzP@;z&%U& z(ZD@RSY_azC9E`X&k}wxaL*D}7`SH%-y67R3Cj)KvxH>^?peZ81NSUpiGh2Tu-L#o zOIT#!o+T_aaL*DJ7`SH%^9|gygn0(;S;BV)?peaO2JTtHTm$zkVUB@&mN47EJxiEn z;GQMSG;q%nW*E3<3Db?AXy+298LQFLj33ccjaBF=#!B?5#t-Pp#tQT#<9qZ(V>$X1 zV;TBnV=4M1V+s01V=?*!V-fmzVe3pTKir(I6h2G9+iQd#` zf!@Suj^5a4hTh0%ik@IJL9cBzM*qZUgdQ{+q6dry=zgOw^=vh41#PnN#5iZ{G?p1j z#y7_2M$o8WPVb>N(_MN=J+t;oyQ=NiR%oIEsLARR z^_;p>U8W|f->9FfLA8RKTg{~0RgNhem3hiIrH9f?aVaI0%qsY^dTO$`nPKfLo*(}nGEFNh@{1I_6Vt2&yh@^~-|wu*cDZ!wyGh4%;0aIc#%u;IP%vj>8s58xETttvPIRe9B>? zqa}w8j^-TJJDPG>?Wo7$M@JnFvm7-z%yd-aFvC%W!*oX_4#|#K4pST@I81UBo4w=I@4w1vxjz|vu9N`@L*gtaU zZGX?9m;Eh=p7z%iGJTk6f5~CI{RM~O_U9am*`H!KnZtgTLw5UV4%zG{F&r&xU&5h` zeG!LP`vML{?Xx-Lx8r}?Gac3Kqxlu8{h!Ydf6c^TyZxWf1Alv*{hxRLU;gzl`#36Yc-J7ytGN z_J7`mfBSg*KkvW4T%KtE=Y96KPq6><4*T23+y8lQ{q5uI|GcaI_ObSV-cNt~7<=7+ z+)sb|XnVpxyk5gVodUM1=rOh`==p7x(W7mZ(DT_UqUW_$K+j_n5N}^}6l|avID~=vzD~4{f6-75}MbI@{VRY422wkxiM3-#^ z&?Q?8x@gOfF4&^cBW?N6BW!um!)$rbGud*JCw#Q!LjPdPiT>V}1O1&XJNjE&HuN{P ztmv<8S@)568a;Xi2l$fpg*uhqTjbgp#N?QN55waL%(awgnq~Ph<@AnfPTw(kABm5hknC& zi+s2q`FcyDZdmc-WN}Zo5XqISh1VfShR~pL{)eyoD+5kON7Zn zAEBjS38jS0kuM`JNA8LIAu=U$KxCW9U}X8ooDuIMZblr6SQ9ZbVpv4Sh&mBfBcdZB z!ha7x9=@%})*lR{{*kc+Telax;Kbs1N-KNB0mnm@AX-06^VTN(o?&PPF#Ldn({ECfE zeAWm{+~CA#jj+V^PJGq~OH6m-vqo6rI_G14^R>>09M(ARbNI=5kHc!`9S*CUH#w|y zUgz+G^D2k$otHQ)cV6VM%z2)}QYSusg(WU=;^S9X;$kO0euX72avtaRSm->;VS)1q zhk4F}9OgLpbC~7a!(pcLXAU!*yEsgD?%*)Zxs5}ba|?%5=Ozv*&J7%hY8Nb9L75rav0~F&ta_dI}T%#o2*FXJF3bI>E+PaX>q9QjN?$pS(8J8vpR=(XJrl{XGIP{XL$|*XITz@ zXDkP=vm^)0S&W0*S%ibjS%`z(8O@=lGdG9o&Kw-7IkR!7>deBSiZhBsWv9WRl2hYQ z(W!8#;FLI&cM2TJIU_g}a=hSB(D9r@0moAgF^X7OVHf}LOgiLR&R^=FYbl2VuEiYox%iJ~(oPru zDNNeo;y;B++gxe<9vfYW95%Qnb6D@1$RXV|p2Jet01iuB-*8y$;(ySPw8+K(pdo3Y zi~m7G(gGL%gNCH}u5SG1^ITtX_|DaZ!?&(Z9Ok;d;4sJ4p2KWcTMn~apL3Y$;yW~H zhKujer0FicLzAYtn(=$2x%duEN_Fuanv~+=J2Yvki~lu6QnHKxHAPaAt2Y0r5?y@K zCQWt)_!W~}J`NLI9u5;+ZVuyJCWmn@2ZymPK7y0RxcCT88tvjEIBArtD!<1_7hlIo zBV2qPCw=YW%QdN=i!axtzAnC8llr&{@Q&5ec|FGIH`jxjNiPy`H@3A z^F4=F<_iujO}?j->YBIt6?IJh+%+k|yw0zvZSv=?NuQXP`4#czZyZAA1r9;;9EX5; zhJ)Ya>p010p5Rw_&0`!q=C2$q^Dqau$sfojxy=3i3e()n!D;@&!C~&^U^jPih%>iy zsA8_?P}y9^p^~|VLwR!*hjQi*9Lk#Cb0}dh{2m3&R1PubR1VQ*1~*(jGlLs0ubIIOm&eTDhRbb^cl9LXVvIh;dw zb0~*QCLdmjA5A{I5FWh|CC3kT1VVB(A z&4*obJNH(8^S18I9NM@ya`@cMH)3*YH{XcKpSk%)O#alpn%|?9n~%rjmTo>ClUum? zcua2YUdHdy%)Nv|Q}-ecP23AOGmJ6z;~v7nau4F* zb`Rj-a(~0Ybob-nbob%laQEV1clY2>%iWbjP4|}^YPdUdsP68_p_;n`hpO&&9ICk6 zaH#BV&7qR}Qw|l~Ejd(hH|J2s-H1c1y8(yN?s^ScU68xUUy{A@Sl*WOFilQiY1=492R?i;!w}SSIpG99=>9x*6}puFBR|MD`u+O!xzTX>K;A| zrdIXT;`gZJ;q{+d(ZlOMwS=cMf2rc0k{pV8igPI9;Q^jn*uw)nwUCDgcxnMpG`~lT zCohNmp4=Srd3a~1=J90ZSLF6&=8(%{w8&@dhS;v>xCqlHXhW_dNNX#edI}Us>1rOTDzNa(H1~;_!#XtC{@V z;?+!kX7Oq!KebNtdpxmtHIpA(yqd|6EMCpzhZe79@&k)kGx@&7tC{?}#jBZo&*J|k zCf~JqHIwgHyqd|ktqfN4mbHz4t!`RdINY!{aky@6;Bd`K=Wx~H|AZ%BvG_mX$(OAk z`Ac20R&w~wTEXF>wVcBRYbl5G)?yCltc4uTTJt%avA*MQ+M3JZlr@{fNoyvD6V`MN z$E`FD$E*|%N3CQIzgmeLj#!g99JVHMIAo3IaL^jd;ea)o!+vWdhke#?4tuSk9QIg) zIs9S`dIlO^(BWbR%Z^It&SWvSsgfR zwAyjlV71|}-fGPu-TIWnI;$mzwN`TuYpkXmezF>KSZy`r@S|0q!z!yThm}?Whaap@ zIIOTj9KN>#9F|)?4$CYLhozRA!xGEnu-I~NSY*X5~F5f0O>LL8=91vsQx`8lLo`8cFlc{oh9 za&btua&SnpvT;bXvT&GUMRAyH85|~A8iuJiJTL!y{{J_g|5Hx*cmq?8`*;IWj`?^4 zQ;zz015h|lUuvvuDJeew%qL~4kG~s}lI)ZD_an*2pAw}c`uMvs zDN}s>-I$cgKK^b@$|Ns;u9Py-%ioPjnc(FQoKnVn`MWVGW4$l!E~ymvSZ_1@wz#CwCoVDB{!gS=Nb4D?>&Fu;3}Lx1mi4&Qjs za`@VNnnOSDNe+Fz$2s)z9_7&6dxS$T?;#F7y$3k-@b2T#-MfcFH}B6Jx_WnU_{zJ3 z!s`U2jdwYR&%H}I zwDvCM@R@fZhflrpIkfVA$DyTnE{7K0*&LdCXL4xfoz9`DH;qFRZwiOT-eeAqyonqd zdM9&e;GM{!zIQx_dfu@d>Uu|WsN)^UA;CMGLv8O+4xe}jbBOm2;NbMOqZ|Hx||NqAGf9hEOLHs389pm56VYGiQhf)4tIE?h~<}lRHTb??^&s&~4*w0&@ zI>^sko;uLaTb??=&s(0_-_Ki~`i-BrJoRfoZ+U7zKW}+zUq5eoY9Bvud1`MzZ+U7* z{|x@s{lY(uLkBiEClkl=66p|+ntA4~nj&!3N_#{2p6vDA>CKOajC_<1!`{eE7} zRG*($Gu7j7z&{VmUyp;^Ux$OsUz>yJkLTd@2RS(WehzlOmqVQ2;!w-);!xA?6@L|eMP+{_4wd{BI8^kP<50n0hC_LOX%1!mB{-Dv7vm7? zFT$a;zYvE~{sJ6I`tx%r;m^mRxIYhvV*Xqliu!YKDB{n?p^!f_hk||^hXQ_`LyTYL zkl!zJi1v#d^7K6^8E- z2i^C8gX+7-LGj(;Ao*@`5PjD<2)?Tv!hOGS2=iUwkjZxrL&`_r84e$Or#QU#o#61! zcZ|au-w_V4eTO)_@*Uvt(zlPppT0dDUig0I@P}^~hv&W>9G?03bWVBdCbL*L<@%T=mW5aK$&B!)0F@hfBT`4!`-5Ib8H5a=74| z%;CImB8PLn@f^qJ^%k3&;MzygM7cGwFvSxmew@LM^{?o zU|Ia#OKTY9+bXR=uq3~tUXX9Aw7S6}{ECENK@Oh;`GiUf2KiD-3k3O6O7jQ#QcCj$ z`BF;r2D9*w$_nzOl;#fdrIcm{75-Arpv1uu6gb#}5gcj-GjXUH;BQK%RS&%7S5ynU z=1?WTmr`1#z;k{@#Q^-THyfSR%wL-d|Raz4DfB0Rv_>z|2$#> zhdJaA9OMuk*v}zfU@wQffnPY}3GC*OJFt^OuE2H z4%Y+SI9v;S#o=n83x~^rjvOupI&iocXv^V3;ByY=1D|m?7ih)dOrSZ3(}AWOP6irr zI1y;T;aH$9hhGD=IUEVZb2uCbayS(5b2u2t;8VN(0XM&5U%=$BH{jr~ClJTsmq1Mp zKL@IF*d3_KVOO9shn<0n9CifCbJ!l>12T16AeLXTHBgGfmOu#(n*)4Vrfv%GWtqA$ zP>8?OhCl%h>jQjprltq-@hjE^@^Dxi;9E3xO@MFF)Sm);i>9s)@GY9UD!{jB>Y@PO ziKz<%Vf@2g;Qz>BzW+Uk@BD8#eCyBPqqezzJ|I))`2XN9HQWD;!z}+34m16aILz=r z;4t0)JBMk0zARJI{CruaruzA^Oil6gWtlqF&zEItvY#)@)FeM&mZ^z;zARIx`1!I- zo$Tk!GIf%lFU!=4e!eVIC-^hCEI$w0|9k%bH=h5~r-u04OivE+xtX36;&U@SF~pzP zrB4Yh$G;otlS4~6ObYRVnm#ea2Wt9+(0u+<<3s$3UHZ7tTzrC2|-R;_G-?Y>2PpX{AGB@k>oB5*o^(aA+`xLZN{i z3WoY~C=mLZLrkbIhy0=59HK)#Iphm<=a4tll|$|jU&qsOg*x#oa)!R(kUi9nL$**G z4p~Bc9Z$;~;_G-?RHy}iDO;!+2P4#kgC63ud72jDvw4~ts>feS3Dw~shxneJCWb=% z3LzBW5E=4uhzNN&goRujGKHKN(msal96p3zg32O++7)9#1()=m38#J6tRy%68JX?H@| z`A2m-l$FD+P-YG{LwxI|-3aOYit8bj!?lpi;c7_aa3vJU;c_UP!=+Fr4!;FIa5x`) z$Kgbfuj91iLB5XDjs^KTPTLv0!tb#oc!|UI;6)DGg6BDG4W8w&C3u>{=HN*Vn}WwV zYz!XdupxMa!}{PM4(o#ZIjjxt<*+80!RM8$gS+?@KL&SjSQ*^P;fLU64l9BiIeZ^n z&tZ9R9fxJXH5`@(S94erT*YB=@COcyg5Psk5aa_gZGMms$h3JuJ|NS+3-SS(HaGY! zzxkZt91gRCvpCEO&fqXJIE};fAm52;(}H{_rlkb=9860NPT==Q3XbD2B{-VHfJ_@4mTIHGVPmSD}IljK|Tl5x(Dm?E4~cY z=FlY=&!KZL$e~@(jUhcHwD#}k|D>?8nWFAQ{Th`XH79ChRF|mwQ8l6pM2WVCwo|q( zwgtBFwjQ>oHm9waO*ft!7mQuTG9%IGXMAdSjaVbA{#w7P@6%W5Y5E|&ogS}O)N^Ye zwcFYeZJjn-8=-a9>S@)r7)?+gs3+CU>U?#a+Ffm;I@F@7raV*5D?62?$`qxq(n|3t zrIjr5EBT7NS6(Tn$^+%La!9Tq=aSw@*QCAD3MonIE47eJsi>rgkHnMWMscnY`zT2Vw*REvdHGipe(dm8I%P!cLrs?&6Po! zXEQS>md%+#sc3U#P%7B$8IKT;#wrVj#`M-YW zI&|yUxm$-0y*hX6*t&h2K7G6X{o7ZxZN$R=m0L$F_+R<6i2463e;P6Gf8|yY-~F%L zGUD6+m0Lv2{a?9x#GLO#dG_vRlNoXd(9h z`yKngf8FxNl?l%<=G;^!EaSMbOs0(EhS-l8$MvxvGLGr7?=z0;V&7#P*T%lhIIf9( zlX3hh_I1W_b?mE*yY=hPt9R$_-9qlh ztt(ZiShYo?FEUDv8+FJi)oau~qx4Cmb{QpqqqZ3(ccV5LC3~aKGfLGPwazG2YV=t~ zscfT9GfE{JwaO?JY1A^K6w|0hMk!CD<{72zjhbbYq8c^LD5;J3L#^~%@lE-VxEbG= z!;Scc9InUn-IIPTzAnGwYJ38REAgLjxE#+PgQZ`J=a0eCe~agj!O}0rd-y#r#Ak3@ zosT#973bm|9L~naaX1rSlf&uw>KsnR^XFsfC*%3^vGf!175PgYkLM50(vQWLg{~BM4UvVU!KT%6R9M7Mqr5}nf!e8oOd?5}8;tO!tAI~4PrSFU9kJ{4r#`8yQ z>3iaH@q7FdpM%5C@!2@+j?cnjS9}zQo$&^T9q}56?ePkSZSfL^t?>efE%6Z?Hpho? z*cAH6VPoh$hYg{(9M*?kb4U-p0|oR&_#a5lF)e$i$iBQEDD|GurPFz!-CLp z4)a4tIm`fw1>m&(9axZg?4e68QQ^NMra#{>7gwgriC_f zNDFQF`}u!rSeZ;whoja+&4?Nj)jlddszOvw+dJEJ+kV?BTdHkqdqcx7BR zelfl`lKy)3Z)I3UNyDc9pPz%VdM~}1?$nFws`f-Xqixj|XydeQS|hENR!|fF zdh$P^ZdAWjN2y)ZdTKQ_S`An3D!(f0lv&C!HBVGOLx&H@gs`QQYndFs9OPR$##oxr;;xciH*hg$3y2Rq5E<6*?3EPE5!UUm* z&_u8cg#|hCQRJz}&5`pW$3%V=*&wn;WK3ja#P1QuBGyOD`Rn<=Q$(GJDiL`jGKJp` zKODX$d`9??@b=;H;T6JjhP?~B9=1PhRak1+fUwWQ{9$FHZu8@1<{`Fo8I-}cvl)~@ zwlf)&fwt2blmWI=8I*5qCo?Et+fHOq`q_?WQ2N@AWl;Lqj%HAL+kVZU^s*hvp!BpI z&Y<+L9m=3|w;jx&bh91EpmeqE&!Bu|+xLIiy9?+l&h>xv^Uih~3lb6}kRZX?Bq1}i zkpLmso`eujaCdho?(PH+g_gEhDQ#(?E$-Ih?i6>|J3Hw)|9j5a-}iU#|J-%gx_6be z+ST%T-gjib`J%2a?Kd0+Pag2PB!>2qcO7 z7D!WW1CT^+J&*)$9gui#Ef9@c1H{XH1EewcHIPQ!S3nwatARA&z64UA`vOQDw+cu- zZY7Xd?sFh@xfMX_a5+F~bIXCmaLa(y;+6ub$t?j=gIf%wI=2Xjhg%3l<+6b&+yWpn zHy=neHxEcPZZ420ZVr%0ZZ?nzZWfTL+)N;DZU&Gl+;kw7xoJQuaZ`a*BTpu9!xZXhS za=n1u;d%l&&Gi6sit7&KB-ahd39c)Uqg)ptN4U;F4s)G=9O60xImmSYa)4_OWIxvq z$Ud$ukiA?RAiKEMKz4Gifb8H}0@=>B0J4p14&*nk8IWJOEFiydnLxI389=sh=|Fzs z(tvE{Qi1%)r2zSXO9t{imjq-J*A&QiTq2N-ToWMQatS~-aPdIaa~hC!oEOMit}&1` zTq7Xga1DWc%{2h>6<6QC2*bIvf7k#2ZT&A6;>OgMu9w2}6Dv(>e0^|lS1G&aW z1G&ss19FLv0&w>l@?k&@@S#BV^Cf`nJ>vk8tnrDH0$rB)7@C=Yu+$SI_xsO0T=RN>g!Mz8P!@UEtoO=so8TSUrQtma7 zCEP0@i@BFT7I80tEaaX8$>yE`S-?F7GM{?_WFGez$XxCbkU88#AhWp#KxT3Gfz0IY z0hz(w1u~tx17sR^8^~1dPaspcTRJEr{E24dzH0Wt9lff)I0 zAO?N`5SE`0gz)o#F#KHqB7WlM0Qtzz2J(TQ1>`+H6UaM$29US>bRci|X+U1{Q-K`e zrvN$3PX=;`p9JI}KM}|zegcru{CFUv_;El+@?(LF;Ku+N&W{E%gdYWD5I+*gKz;;} z{`_zt{rJy-^yP;E>CF!X(u*Ggqz6A3NJ)MWkT8BAkWhXAkP>`11ZAy0#cao2_%^B0VIg;?q8(7{HMR`|NplB4`?TVY!}d00NE~}jR3M;Kx+YH zyMR^#$aVoO1(59mS_mN91vD2xwhL$`fNU3#C4g)fkSTy{7my)`f&j8zK)e95U4SNlY!~1a zK(-5LEP!km&`1E;E})?RvRyy}0c5*?`U1#y0dWGzb^-MSknI9u1(59m>Ixv+1=JBh zwhO2&fNU2KBXskh2LoyeU4hgTx&WymbOusg=mf+gbOfRb9e^l8dmysV4oI}n7DzRr z4Uj0IHIPW56_5y_C6KB@3m|TxIglzsGa!|PEFhJHOdu773?LPRbRgx0G$7@KR3K%A z6d+}UWFV!5Bp{`Pra(#xi9o`HCO|@k1Ry1Zcp$|E4M>RK1yW3C45X;g2uKm3A&|mC z10cadeIP+X9FRgnJs^QXERcdiT_6R7IzaLZwSnXlVt@n)wSY)MP5&aD5o!QAEmQ|` zQt$vdA*eu(3kr}w1R2QhLNt(LLNy>qg(x6Lgh(KVg$N)Ag{nXf2yP(zg(^Vy36+8D z6)FMQBUA*kTc`kJmrx$aPN5u-9YR?k+l6o-ON25&77L|;ED}lqStyhQk}ZS*Ss;W0 znJ<(8GEXQDWUdebWR6e_$ZVk~kXb?zATx!+KxPQRK&A^pK&Ag(87Vk{j1U|^h6{Eep9wY~ z!vrgkp@Id-5Wx&&uwVi*NH78!C>VeY5Lh7n1>#=<+6%M(uK)kr`af6`LADF_iXhts zHx@y*3vMKWY!}>61lcaQfe5l)aGVITU2r`SWV_&45oEjIx+2JS!F5EC?SgBIAln5O z5J9#JdMJWy7j$0)*)Hh12(n$!H4$XHpsOOtc0t2MknMs#6G65M8YY5l7vvT}whO8v zf@~L5Sp?ZG$SHzs7vvB@whOY0Aln6A6hXENydZ*X7kFL-*)H&V5oEi-O(Mv4f!~QB z+XZeELADG0Rs`8DaDxc4UEq3=@t+3+*9o71tQ9^2`BL}*60GTFi2Qo(324uAG8<0`LuRuN%egQH}*a~E* zumwmj;b$P-gr9(P6*dEL3P1XnfVsjCK;{VF1DP#s0y19s4#+rRBapGew?M`S8-R=! z)&m(OtOGJqSPNu?um;F*;Ts^I310&lCVT~CsIVHy5aCN8gM}}E3=&oW87Qm-GC=qo zNPl4kkbXiAkiNolAbo^oKza*Hf%FoV0O=_#2GT=V1f;vL5J)#68%S4S0gx`jd?1~L zc|bY|bAfae=J=Q3!D7k3>;M0@{x8u>1lg`cPZ4Ch;_pO|?TWt@LAERYMg-Ze_)8IF zyW$T-knM`!7eTfweoqA1u6QdEWV_-mMUd@^w-7 zLY9dj+lAB=LADF2A%bidQe6buF2o~(Y!{-6Alro~BFJ_jvIw$WNVEvDT}U+%WV?_k zakl?F7!o1Q0^$~D0;w#{08&Yu4y2+u4M+uXDv)yG6d>W^WFTe4NkB@A6M>WxCjbc* z$NQIJ^TcsL=89v1%n`=`=^~B>(penkUy8mHM*?{(jsWsT91i5Q_!*E_;xHgD#i2l6 zh(mxp7Y74*CJqAfR2&H8i8uhrW3fMwM`Ax955>Mf9*BK_+!uQTxhM7la#!pL1CYyNdmxv@c0ewQZGl`6+WNou?3KQVsjvS#b!WOidjHD7c+sZ5Ho;G5YvH-7t?_B7gK@s6H|cn z6_bH<6O(|L#il?^Vj>Wu*aV0{OaQ`)@j!^E0bxY1e<|`wYz*Y1*a*l6u_2HrVgn$L z#ri-ViE%(4iuHgz5MzPd7wZDKC)NRSSF8=>ju->vwph!*6h1801ae5M0py@q-M<81 z7d=3(i7Jq*q5|ZKC0#qvN#h~pL7Dh{Nh z6au7!R18RasVI>ODoHjV6(uW>3X%m#dC3f< zoMZx0Rx$z!mkdD4NGy=j5&=?5Vt|wsKLH67KLQCAKL9Bqz6VlVdZgK<{oKK|BQHym%1EIq?9Hv*LarXT*I#PK$eioD%l{ zIVtW2azfk%>;M0@{?{}KWIN3(fo!KWmO!@C8b~19Y4s(L?X)-vWIHWJ0@0@*HnodmL7_*&^F|9LQcy0jU{H0ehm zQ>7n(Op(3^GFjRLWRmn9kTKFmAj73^fpnKP0O=;J2hvqq2c(g-7Dz*B4Uh)XH~yu} zJ?U#8ccrg@+>urTxgmWCWS#T{khRh(AZw(RKsrmG1L-8K0Fox<07;dW14)sV0jV!7 z1rjGM0a8y|3?x=s1f;IC5J(*<8%T__07xxqK9HKyJRlxvE)Z3k14NN#1Cga!K*~!q zfs~VG04Xa?2U1d+1|&q93Z$?!1xO)jGLU@IBp`w`5r|Wo0K_JZ_b;VCNaKLKkj4Ue zER6wjPZ|y6mNW{;RcR!U3(^Q6C#2y(j!K^a*)I(PvO^jQWVI>wF)Cb6YsW*`0QZFE@q@F-lNUpjp;BugMWt3if~A%~f}|Ee z3Q5g@IHYF&rQ|Is3&>3=6UYrI1IQIA9mr)V4ag-a6-Xl~1xQ0F8At;u35Y>z3WSvs z{Y%(KsR@t|QUZ|oQaq3ck_Kdp6B`J>%i(tZ7BhvEVEBXl27WF-m~X+?<->W7 zd&ZsNe&JSdm0Kk10BsAwH>7$PWu!4Df<@ta{E|&XM4Oo!d}Ss(RSUo&$iY!%QnE4 zWs9+uvN^1ettYKNTbEhKSUXuYYgKEY<%8v#Wv^w8Wu~RSCDT&NQqp2KKQf;%|72cj z9&PSu_L|-1f~NPTtEN4sZ%i{x{Y)9Anx-(5&G^uG+_>4e#5l^>!PwYX#aO`b&Tz%B z+wiqvx}mQj-B802YOt~o*gx1G*~RQgwmsX3t<2^pZ^>n{i+n|)WYKi#EOc#OnKw%rB-CL1a;a0nK}>6hiby2}JZ-DTwHmQUK9QB|oAU zNkJ~6baGqiiqf#!XrAWxDXvt9Ec7pHbjRM3!;OH8PNd+eaiFpD+bhRpF$Ar zl|LccBY#A+TmFD(m;4UVPWcU@9r7zg+vOLCw#m;C{U$#}^sD?B(J%5tL|f(ih_=Z0 z5dAFQMf8(=2hnEvHliQpKN0;P-$L}gd=t?o`39oz@M62Z^h`y8$A^Ji-fM}Jx57A0_52D`kE<`=# z9f-2zZHO}EUlC={vJ`X{2ihsc_X5x@&-hS@_Ix~YD1V8lf&2xcTJlQ&#LS!`e~xIfoP%hhybRHJ zc?qI%@*+fI9E&JPu7jwl9D^uPu8F9LTpiGi8M2CK zx-27_CRal=RgOe7MXriyvRnnxB)JlziE;&oVS@C3{QU7<|DQrU41a)M&(Glp@y+=< zd>P)wJ>^bwTe%!=9M^?Q;3Byo*C*Ev*M8SJ*KF57S2I^_S812i`NVn3xy8BMIo8?P z8Sjj67IJ)aTzBkqtaZ$C3~*#QVjQI$4*O&KN&C+)gEa3V7q49Yg=QR zY3pyxwAHeewArnXtS78LS(jQzTRU34R=2gF<-O&qWsl_>%M43DONOPUCCp+oKQtdV zZ#FM6k1}^KH#S!>7cjjuT`}!8eQla<>T60j)i8ycti}h%Ka4*b7aK?EtnRMMNI5)XgV z&o2AtU-{qRBzu?|ifE`>9MKRp1kqr%7@|RH5kv#kU_=AdLWugS1rhaA^CRl31|aIA ziimov0-|0jhp4COMASpIBkHbN5p`3|h`OpqL|s%CQD>Dw)JZ|*e|AUZJ!;iKd5fsM z@)}V)?&pxi>+6|dYt zq$#Ml&h{#(xXx~@pyE2ak%Efr?1l;|uCp5`sJPCqub|>OJ5E8xb#^@k71!CZ3M#I% z>nf_SvSLB(};bp;jI*&YQI*V(FqitB7e zLB(~ptZYVW7_Iz(sG70~QIvuz=%3wr=l!1r>mHvndDt!?Z zP*KOKpOm_YJ}R{leNbv4dau+# z^hWU@daZ!^lq`6mD5%vL1(dF2!C@sDwc4kEs+KI+t3;tzdlXRck_EdJQ1FrkyA(I- zaFqgTVX|PMQW>g5ZOHvBAZ7*Wc6@} zEFLE!v&W9ew!y?jW{17qfM?l%1)c1%!s&5f}P+uc@uf9a|PJNE( zt@;$v8}%`w*Xlz=uhjd9UaEHyy-;r>dam9=^h~{h=&5=Q(G&FwqQ~kbM32-9h#sov z5Is=OAiA%fLUd0(f#|OK2ckRbF+{i3BZ&S~4JCI# z)oqBbsJ|k*tZqegN&OkoMRhZx3+fMu&a0acol`d=I;(C#bVgl==(M^9(JA$7L?_kN zh)$?qAUdwDMD&Nc0@3g4azw|}rHGEIixC}B7a}^WEI_8t z)M<$Js#6f{Q70kVtxiC+OC5)3r#c4F4s{fw?dk|b+tkkxtyjUtb&|bK9fDe|RRX`U#YzityaOsb&~z13NEgb>@QSsah+tZQaht%tyDWA`dn>~XocDq zQI6Ug(Q>sVqGf7xL`&5yL`&2RM2polM2plEL<`kqMA>RnL<`g=h~}%{;yTHmr-F;? zBzvw3F0Pa8IV!lgPO@jK;Nm*To~719YdBM_i)e;g8_{&N7NTh?xb9A}r>fw(JIS7+ zdQgXxRW#+1JxN9L8rc(7GM}7H=?mBnxV)ZqoQeu?9nQkYsem@ zmPgAPsg^}FLM;PmVX!B{cm01DVHy6W-#Y+);udkkxE5Rt7s?s+`~Ua2zI07+b#gUy zmD8{OKX4v#u6NFG_HrgVt2*;JUN}xUesnBw402>RR7YX^2m2-aZ~A@zBkis2b?jkw zlkJv%)qk~ZqOG&7k*&PVWqoKpYTaO+Y3*%oYK^ewx4g8RwrsX!TL$a*`+F=!%pc8{ z&D+d5`qln6=DOyRX0z!}(>~Kzrb(tQrpBfUCeHZCc+B{%ah9={ z(`jEK@kBc9OC)lsw9i{~rO>`5qBDi^Enz<8OZ$j7jQKDo?H+|+JJZfk_|@vP-88P7 zwvoawucR%b@RN>dQ)p~V8${v9%hTG^*pt?j!jI0R)uM6VvFZ zo08g)#${5gQTXnzR7%Qa?tDz9t@)h~$&~EC+?Aw<@ zIZ!eC+NMwrRLnjmg>s-`_AXALoVPH0qfW$nG!=|XG%p1?_Qk}OyjyK zRtoRBn*4&sSCX&Mcv$jL8V^mTeTjAjCeyw|J2xfMzC=47CR0wSm>mz211PJu<9;$j z;U(5&%7KbmyfT?`pkfwXN}?Ss7F|rDjq^nplJ*qQPrzBf1ya8`Ne{60J(TnvR`0J# z%PIOx(lm;0O&WsLa61XjUM(!`X^e{DQl5s0N_y%e3iF^jl!c)lG>5XVga^%`EG+Ip zb0`Z#JT=g26!V~ol7&S*3Tjov6YZ=2hmd?Mzl~qckKkMKwfGR8;jVDoxaHgkuBBf2 z7w1^lHP`j(Ykt|2F#_ z`yu-}`!st`dlS3cF4>;hj@!Ps&9e=(rQ4!y!PXDfi`MPdmDaJ=_SSmVFss?}r+%;h z7nZS>4wm|sG8U`(j(NZNYx5*?XLAE{xY=sDW7@CZPRj>TZnViOZ#v{fJxs`vS zv8pk^@WOD?u+cDEzrR1l5N!x%Kjc>aIr`oGt=T$kN!Cnmll|lyGKKUYO-L1zkH7ZM zTlxRxKMLzl{1^P!0UxK;YY?YZb9*o7qlu^+50DI+$cFxZ`>C(_ObUCXdIIm6CuZG zeL&+}_TCK9x4GDVZgWh0j5l|yd-~ts^?d=pz0w0MJ=eWg{qJzSc~mv;HMDB+kmKlWH2>kHS% zU>CRqy$5{_F8N>iye_;KaqAdOi_^N|_0!#Z+5ac%>s;SDeeJsA_P)*UhF2~k+It0P zk``GdPV3-*zsLF1dk(Bvwn$z+HuFv5F`(%hHBvM9~^#?+_+M0_GxE*@;{9*a zUjbSISafcCudlT9Gn(o&Zjj(R<~0V5bJ@EKY;{aR!-UAlIL%j(`|CW8?fx60c-Mqho6-tOniq;Pm@4yP>vgW2V)<57FO5@7jpKxQ}c~c$SSU+vqLTRj@ zIMk&yj`nW#|AmdwVq#>sFB#MTz2^mJH9_yW?EMipj?hPDE!;Swns+l;HE+|Tyj=1b z=shn$s}6e4W$!)z17APA){=e0Peq;Qy7zlZbKghip)}V&vmf;4;Oc7hhA--8)yB>Z z>sCK28M{*|Hnf@Vv;_3;cv_-sGmYYpi{EdiQvCkJ#m(~5yi2KO0aP#9j8Hu+>mkj< zPBbe+^8zii&Qtu}sf4V34C8-v7*C2b(j^s=0{iqyD7-cGKskF{XB=Sp7MF zqw$7uw{ewmys@LPp|PCNWq4>fY*=rYVd!mWYH%Aw_M!fS|99+cwh!Bct*SrY|BU=W z){|MJFG(U1MEaMq|F8ckuIJ7FJljc(^Hz?~^F-ac+8%wM`#D$qM}!7WJMvs_zt{gK zlIPk!{|P@=wIKh+Ut(N6-$5*Q?RNUlCjSi4c2fiN_1oe9EB#jw+Ag&EzID(Fq1{(c z_RWvz-T#VqUtWZ^jplm$-{A7~C1~5x?$dkM0@3b^saM%|o~-x21?`=`LbP9~0eTNV zqurO=gSHi|zK^wnpmA)n=F7I5LE~K3@`F|LY3}(GI7}tx1!zA}datGx0IL?0kb7pg z5j4(a%{Tq+=cF@HSKkTLx43a+q$Yt8p%-TjqVyyG2Gn`3Ya*q2q`p(vQ<_K0ngB+$ zZ|Qlv)prY!zl88tgtm^dfQV`ukGMgKuX10D_KlA<4mb8yj%#q^$Oz2^8^=WI-=)E@ zvCf*)|5hh>V-j-7~jG__rF{I za?OO<*LsEjW&2uJb8ANb8>S^UO4b|e=fJ*;l72puzXG%z|Gnq2X7ImdT2j4)xWt&c z+EV|;iqExW(BiZu{tFqsoyLOojZeuPzazl<=Cap!<;u@Yy{3N-`WI)R|1p%S-cJDQ z_$DDcf^E^!d*1&Fdy^BBtLcMdp8r+KWA8iMI7UmFr4r0>d^QPXsVEgg{G!1NDE_-)_rN<;EG|*=#v}vgGT=%|0oS0OvZk#q5E!)T5 z7ih~8ld9%kh49^A;V0GUM;~8+HU;-yHQM_U_TD79fiDkFLYtnL8{j<%mmcdo@J@tF z*V+3Vb*^6t@Fk!LsPkO+K119n)_3q6kCyFY?^FNUI62LC{8)@MF}7)(w#ffiy>YUx z8iTQ(MnJz>T!KCeHpc({XxyM)d~&3I0yWP62LI*WC;po^icO4*ayP2%edPbc&U4>Z z`))$=GnD=c&_>bP`>q>32JK^#W2@;O$VmSi-zb;8z6k_B=bjCd8^<>FcT3TvbLM=w~b@OiX7v>4( zPUc4D@@CHT$n?8uqiLF{r>TjlswtoGnemkVj{gP5A;xCL>c%4a8~)E3elW~2^fWX! zR5D2HOZFW5E1ScPXS?dve-stEjR7i0?0&ys(>>c4HP zzWutzCNzyR2Jnz14wC4C#5p0k9FUxLNDdn$yA_hn0?BHIWYOQ24|bHv2#Ga7B5WaF zhc-WZ-j^2w{`G!}__#WC^b1=N9h+^`PqhO6^-hg{V6$(bRc*EjnY&uE@BVXvTBA6< zI;dAAB1wW+xpI;as(;l=vj5x&{g)#2qg=hzIDK6c6JzS>xgy?7iSZqK;`9lGi~cK= z+7h%S?Q|(w3FM5FGed)S&ZI6-MaDMj6SamePc}ib5EY@?T!93SDwdP z{Ac`J)nwRpZlw~>!mf3XC$MY13W^3hCZ=&?{Ty81b94Qt%+$Pqcrc-w$67T?WBpk4 z39PrT?%Y!IcN$ba;|fIQYBQRCXlzQ!L=V;^e~xUug@ z1J3i4l56X?KWJ4^;~1~+n$ugfWFKo)K;y)CukQf=1~krPt+M~mJE=jV*y!BP`z7c- zFF*t5p}zJ}`r-KnSa>dL6>;Cbldaddu|8Gdd$h~Xu{|j^sX>gdb^>Q|f4Np3Y3~uZ@wSJ5nM^@3o!RHlIKPJYvzrl<{Qm$+FDXo1)!63M5 zF}~?I2ioKM!nM-=*Sl$Y)5iK8U1R<4(xyoX-n@Zw*Z-pb3efI>-gDb)rC{%k^-o*h zEyH2&z5wkO>|JNg_ke((^V_CLdD8>n@_8<6xBbu5_)sh9e|PGpPY(SF8%B8VgVoiq zt?Mmsf^L1Ph58=>iOEg#8sG50t$(>z!vBu`>(oO(vA6`<=bf8qS17EvzTkh=bGz5T zt&~2Lt7wY<{pC|F#Qz*mVq9uHIZ7WM`jR(+4f{uk_B}N~@8LVJX?Z!B4z3rNhp5kp@9xR)<6E-ym+1MLW( z>+OF>AE(c?<6s>7de@4ebx-h}zH3J)tS|U5>RNBD9R**4xP*FIVf5K+b@ILf;1;<= z{hk@$dL2Rw)>%8qz``q^VAl)a$)wo-zu*5~Nq;)vmEpYMH^b+K@rEvjctce~LG~Sc zncc~L$xdc_uua)&Y%uvmu9Lm`69UuqU;j%bs=ix-eRV1O&ywzc%?P|=7DIc^EQ0ow zSqSYhlMU?=vjEyXW|2ZWM)IV!OVhootX*kDl-Gx6=piL%gi)r zmzb&0E;3V~U0^0dJI_plc8-|{?JP3^+8Jg%wA0KuXs4L5&`vUApq*ewLp#olg7yb9 z658*~2$*G#4Tp48e^(QjN;;yys|nEIp^y&guWIrGH{-P<+>c{Soe$d}R1zK(D3h7(@ z^;DqMI{o!jfYx?`v_^mS548G5|HUXkU+XWm0`yfoNUQbtU4d3#>OUq0XqEmdEI=#u z-ZyEzMNPkKe&_Mkcz5or-AD{))U;pthK>hS*YXSAq ze-{i;Z~d`bK)v)=mjUXjKamTlM|DWu^oMmptFHQ6%>Z@OpW_A8Qh(tYpytt#n(6OC z1Ff>6AZ6;WNdv7i^w*>TO0NnjO@D(LXqBqJK@Cvj%8=spm#cwRaz#i{`g_+vtH|<@ zBFaIkS{9N!98#4skSdpkRH+oCiX|ac2!m8!{|Pg&H_DZOR91i0JZKdj0;xgW^q>w;J#R@_yQUFrn{E!0kK`Iyksetb`_h5gwy6b=EyZ%3c zgfRR*ehoi^@5`t09{mjfM(#Fuh}*!;;RbS9TrDn)v%2oPj_FSTEN~5VwRF{WmC@h- z_t<&Dx!JkcIl|dizYn0iQ*b2U=f7znrO` zd-<8HF4%|BuUG=>&D?_4i@Ax+G?=*oZ6I?U+5qMnw0_K0XnmP0(0VhMq4i=eLF>s} zgw}((0IeHy9$IJS9JEf%S!f-YGtk;Ir=hiFPC;wKoP?IjoPd_X9EX<7`~fY2`5jt3 za}1is=oiQQk57}AIRdRQa~N79<`A?7%t2`NnFG+`nElY|G5es!GJB!bW%fX;!|aAu zo7n{|hS>?N7PA9dO=df^8q79m)tTR*d6-|Jsmw3X6lNrWRzoYod{vA>*O7CgY&BB4eSoBx9hpAfur* zC!?S>BO{?@krB``$#7^HXPRhUO)`pfx5vp*12spfx1jq17kdpv94{(CU#c&|*nvXmv>^XmvK!hwCbcaG!JP7O(iX%DWnB7nKXwMO`1WgMzWwqkxXcj zBm-ImNrzUIq(O6&RA^O53be{38CoTh1g#=z3atW3gjSw3ffh~@pp_x<&`J{xS}Ed% zR+2P^7DgID3ndMql^_kEg^>Etijg>IMM*tqMMx~P!lW*=U{VKK5UCBV5Q%{nNNPbV zNNPeWKx#nCPpU)9M?BC1hzd<23N(?(&;$|Vnt_yq#*(to2nmPAkTS>$ej=rj1x_Ms|GxhJzjysV zs5}eDa8NlGj^UuPEF8l@;Vc}(L1kDthJ#A8a0~~PV&NDLD#^kz92CaFF&q@i!Z93F zf`wx^s5lG9a8L*f$8bb>hXihdiGzXgxnw<@RW@9C2 zR#t>&VFhR=mWO6!IcNsf1&w8$&NG`R-t6uAoRB)J0Z1i1|DIJpGv4{{OO z@8klsW8^%vqvRa4BjhZ!!{iLKL*z8HgX9#n1LP#M{p19+edIW@z#rHd&^D1jplu|- zLt9UdL0dAG9yXUTCYx9%w7cZfKvA zUC>sLozRw(9nhAM?a-EzZP1pG-=Hlfzd~C?eu1`-Y=xFhwm@4zeug%m`~+jCbTTjJM?!jDN~W7;njm7;nl67;nfL#_Mup zjMtRX7_Tb&OMK8rc13Q8@v>YW<0V=Dp&``mMY%4<3vz9Y=jB=$&&f3~o|Qcqmn$5` z0rEkN{pI}_`^kGT_LX;ItS#@vSX0)2zX9#r^73yO%gMiB43odbSXkbSF<35xF-YEo zv5>q9W1y^HEGS1~EFec=%r8e^%qP1s2FR5$N^(VvqU?X3P*02n$II~e8T6W+29Hax z*s0K7vQwbFU?)R+%ua%~ik%2;B|8Dy=j?cBE7)<+a@euZma}7^En`PRTgr}twuBuC zZ4o;H+Cp|Xv~2b>Xbae3(B`v4q0M85K%2`BhBk*C1Z_4u5ZWwu0JNEGe`wv`#|f=_J-Dp?FFqP+Y?#`wgrJGTAoJGT7G8(%Dwf(%6>JQrQ;JQrPCulG$d^lGrS0P1#In ziEIY6CTu#i1U3y?JevwlV^g4c*<@&q*(7L<*rw1LvWd_duuY)VXA_{svGLIAu^O~k z)(fpJ+Zb9Mwh^@2Y(r=Xh&?>RjeD(im63*~@_^&voX!`tSb*xL&%>y0*HOxkkC#x$3*hxj5$&{ptT7oeQ1AoGqPo zoTZ#L$9>09$419o$3RD>qlW$)fJXbD_5=2{_8Im*_7uBpFKqi{yJp+1Kl?w~*4@^` z7GW!BeXIWp;5PkN0LNK7SsPm`StZL0%NffS%TmioOIu5vrL4teer!H&{z3m8z@g?A z=Gx|xW~=F*>4@oD(;U+PQ--O!Da2$j-ZJhtt}#wG_BJLPqm99akA|y;U4}0WlMLPT z=l-i23b1e33+!*~3U(~pk!{3QWJU6voF+e$C1eC?L+X)m{<{CdKlg9p8E_7#;G!kR zrQo6^$Eo0=CC8y`!OOHOKVh^fKVq~h-($2W`s?pO{gq=@a21tfQr6>^MrAEVgYpeV zR{07eQNF~;D7gMw{z>^9wp{*E$-($RS%&ewvIOHhMgIX5uy2>YRkAU@QRZWOt<1&v zN|}xEr7{!a3uQXS=gL%!&y>j+pDGhEK2gSFe5{Pc_(&Oz@u4yj;{#`As?@=FM2W$8SgDEekWwAuvPw#Mj1`r#7%M0O#`200V>u-VV_Aj8 z7_R8QbOVOTvNG~}jHTtb7)!~oF_x5HVhod?VGNa@U@Rd&!dP5>fH6eD^Owtt$yag9 zqVi>oMdXVZ3(My*2FqtL2Fa%}7Lre543v*!EGYkuv4DIOV}AKC#(eS$i~;g;jFJ+H zQIwZr6qFE*yu27ACojb4k{4if%JVQf_o`%sZPr+!CCt)-y zPK*Y50!CIIhmpu*Ff#Heh)X}oBQSoHKg0Mz9*Xh3V#oMS9*ps=JP_j>xj)9&a$k(E zFsoW9c6aBaK&~YV)S8{*<@9+BmzpDSgRe!^~c!T;2 z#`WqJjO)~&Fs@a9#JEQN9^*IacNo7`zs2~Kx*p?dbuGp(RZ5Bfg-R*$SE-Z|f2E2` z{G89#&+!VaP;)TmsLL=eSC?R1rY^#`RL#b?M4gXuu{syyB6T*#h3ZU<+3IwR3)HC? z=c~BH&zYy<5QIVvvkb7p&R*^)EMgUgnjnI2rW%Cr z$(icGWlPQ!bu`|$lhu(JC#l0Rj`38$INDPV<0wx!#*v=V7)N+YV(hEp<9bdX6(72D zdaL-*ozqLjhwhx7Dn4}Q^ic7kJEyyf58XN4RD9^p>8ys~ozO`wfw80V24e>m-}IBy zUNzyC?bJYwZPfx8+bH)iwpQ^eN=_@a6K>g3?SQd`+74rLwGGB*YAcLcY72~+YBP)( zDxL|-NmtWx%QO|w1m&cvNw{T-nusx3O~9C>Y8acUjWH&w4KX%R>tjq%DOodKrDRP_ zrDRR7s^DcdR--XCQll_7RI6fapjO6MU#*BSPNk&OdMYKQ#;T=ow{=xqOy<;43*(lx z)gX*9YCep$R0(5EmB&~^bz!WoIxu=v8%9;NU{q8CMp-2oqm@q>t0^BaMk((wMk=o` zMkp^ZR#l#1bSrq4EvJg|2)C@PJiu5&xr4E|@+Za+u7RxV-; zR?cG#QqE#5q@2bWsNl)FoPx@6+_HdzC+~9dD@Sq5e9B>r0m?y)lCmG8sO-hKQQdCW zFM1Cq%>Vn>|6AEqTd?(=^}Kb9b&++jHQgF*EogaZIceEsnQiH9X=15t;mr@ths|ru zlg*vY4fHquTTHi1yG<)iqfM<%F{TjXC*vjKFUG~jA;t`&Yz)+YhJmQ!Zu{XSu6RI>>;bj7`@uBO^WLqt^Wxzg%|nvoBA8XB)4!^t`bQC z_NC9G2eeHeO%Gtwdr||W#p%uH0nzCVsR81N^lJ0~SIS3vfHUPDEr9uyFYN<0;KP`- zyVQW!&a~6ifLE*2cF_asrhQ8dczGplDK+3p$F#}x0At!fYQW>=Y3=9%p0q@2z@sy1 zHR%C;)AZl%#$%FsB%~Fh20UDoW~K+!PklxWcyJ^23O!(C>K1yyh}6~efWoPBsR8#l zr;efrB&GJC2Hbm`nne$olG=bCP$o5s8gO@4YA7|}&WB{`*PprbKAHOUXZFuX(SKZ+ zG9LDqPuWck*taibBR!yP$})NYlQM-Guy=9FAbLP_N_%R+o)ale=>a`cYS9CnDHW&z zyH}?K(F5wHSf~NJt|mXH2V6LH0)yfT@3NMaUUOrnqKMHiBG7t@FRzyF-UKMu|P<|N&xdEY}x8)@$S zC21RjyK{MMA6Io%+aS!}X{NI4Z7pyLR0N zbZXO4-h$859($@|eB@CvKJ>^KA9$)^yzhy`c+W$rsPB5J;Ffnhl`vlSgkrqrDUR`~ zrx?a7o+218dx9}u@)W{&(NhrP1y6pA=RE-!&v`_QXFZf!{EUZEi=XyTYVlJZN-ciU zL#f42cqsFb$32un{SObNQ2$+}6za!RN}+yKeTR475%mqm!z!hUKcv3EEf1=cD*k{< zsp9vmlq!CoN~z-as`u~;?NKQu{%)00;_p%^CH_v8QsVDWDJA}Pl~UqwQz<3>Z|Zrx zoxiG-68{&KQsQq_PvUO3sFV`_XO&Xo|D;k%{LLz*#Q#yHl=wfWloJ1Yl~UqwQg`cB zZjszt*WbT<_y6}HW`_TjU&0UNGkJwC#J%QDb3br%xxQRe&drIg$F8HUb*`zduC7L| zvM!tRwsWuZ3+Gt(q z!Jc5hV`s6w*aWr`%aI4<5c!5oBAxW7`b!ftf7#z2@cmtgsjBanlX`b*+oEspR^9uw z@6o$ktG=CjbdODF8fPx))@K1|0by?al#3P+;+{hfDCnL|50Kom=mDa8CN;qH(mjJ7 z@WMTv9`M{fjUMpKJ(V8t)U6j1lpSSy;?_%aTEJuXBznMg_e6TYHTML1z-9M%dcY<3 zIC{WE_gH$s1@{4;~qf|IPD%z4>;xij2>{(J&Yc3 z!abB8aNIqF9`J{IFg@URw_cjkcGNMqKIuaXIO-li4>;oPPY*ck?ne(e;iNO%K@b?nMvS=hmkxX!~KWTc2>D1?+Kmrw8nIccTaFa(AT%>~wdb2kdZnrUz_u zccKSuc6X!){OImL5BR~YPj=9D)c0yuxU{a`%r)~E1j0cYKr^neQP40=F$cX}C9c)-7x=vt$=x-m(~ z-WK|Qw1`bgtXCx>N&LSQSh;c%UtFKMF#cQ7|BtDQ=nY@g&x)Z%aKpOQ&q|_2IHh7k zo3*4xIG&d1+RRIhcwGE`Gld#)f8ye1`REZ{N;YHuhlsGO2lR-r6U|D~BMP+4I!BGT zcPb%kFFoQwMAjyH#J*ZtIrNB~GqR@9BX+dQ8vH**w9V>3i!i;kAIhpok1!==1ydtl zJTYcj=@E~_%;*0@gphfa9&vL+<`H_twda}C2~9H2lS!SgBrTq2QfE9#iwYTfLdH|% zq(%9RBx-=VJd=8{fvD9psnhgC^<+|~M2T`XlR70zlrx!O)Rk2FWs3BGz8UoEe2SPs zz0OAzA%i+COXRf~)Qb&7UXww+*g)j^8PtmnB>F}M^Weh*7O(jfVA{$)PQ`?(~r^vW~6VW9{bFt-1B|)e_!JK z->v`aI7>K*eSc1)O&1cP<&GXIu&B^8nbAaio>37ox z({xjJlh;(<W0GlyZz3wKd}qg0c;8z z$>t-^$RFfeGK2IW8mT~>cn08qoCV0gs;Yy!H}kKoYNrQeSGCat7F5*-4drwv|GcXD z6)IZ5+^YJuUs}MJswR5C=&D9~z^JMQdcer4EInXERYDIKUX?y0lm9cfeuav*nW1hy z719DqxIfSXio4%a1M;2!KiIp=_$aRSZ{V@b#)G@Nj7tO$7G#Fq4Z$UNaWC!#3Pp++ zcXuo9P>Qt$ic5hO3T-K+Ew2B`hQJ2G^*g!WJkN{rs`vf*UT0>`xz3p*yBp;>4K69q zXmDP6N`rIC6B499uRNx~Ipq-z&MMY0L{wDzGm3TQNr4{~>(c}jIIa9cgHy`iH0Yq* zCqZ~dBHLmn%^Z_9*3d8bm6;(I7&(Ljzs8O#@B&l?JME ziw3fClLjHmFEj{NtQQ+mQT`W{8#FklT&KZV}>@;l``4NfTMXmDIPOM_#|85$f_ex$(>{pJ{V4re~278sGG}xmYp}}tDTN>y+&@ zSgUNK!5U>N4OS~#Xs}B8ng%PC%`{k{Y@)$(#adEQ6}3#+K!c^qdKxTN*3n>*vX%x5 zl{GY2psc3Bd}S34<|!*_FjrYYgE`7_8q8Lf(O{Oclm;`EB{Z0!ET+M9Wf2WVDhp{) zQCUEP7-c>UDk#<_1(kB;mAN!1qs*Z}v@)9pC6!q;D51=xK`~_p2{JELL;hR;C$9XH z{*jecV4*sM1`E`|G?=drqQN|MAPwfK186Wu?N5UIH`RU!^rgWKwGR!htG#J(O{LFE z^Z%rNN|$g|?MZ_xDt%s>|FYVhF5!~ejRqIht~9uycA>#}wKEOQsq}ei{P2CvjcG4o7IMp~BI8+x6Ow~yPLv@fKZ)>#{4GO9z4GO3R4f3lsX^>T|L4z!6bsA(=tC1kj zk7_Ip_Ni5Auve`@gFR|x8thgp(O{Qakp?@}7#i$QE6`xOTAl{m)N(Y~s+Og}7PSlw zzE(@qV6$3^2J_Wu8gx{nXi!v*q(Koif(C_Eod$(ejRpl(l?DY=g$DUmnFje(i3WL9 zkp_8Gfd;u%o&>p{sT>WSswHV~TP;C@pVi_txS1Ucf>yflbb^Uxql%}s*rPt;r_$hK9@NrNqF4jRO$*=fM5 z*=WG2SxJ!fg_?y1&(+K{c&28efv=j81X*&c8EBAQO;3YtYB~~Rex`=g;F20ff&z=w zq5rM_lUM)XTL6U)s1M27EVN&JK!bhizcg5>{zHQq>fbb&s@|u;Wc4o^j8X5=V3hhN z4f?5fY0zE$g9hEy-)YcQ{f!1))H^ijtlp+UC-qkvbX0HApo4mo2JO{fXwXjmnFeju z8#MSty-tHR>NOg)R)3;FEA=W3TB=uQ&_caTgXZcb8Z=Wc(x9n&fd&oK^E9Zho})os z^(+l4sb^?VQT>qy71Yx-D5svHL0R=A4a%rL(4e&XJq?Pf-_anidV&Ud)Z;YBr5>X} zPW31aa;QgWkX`+j2HDiZG{~xcLxU{pAsS>>57Ho$dVmHQ)%`R`ukNEkI(07%!qq)A z2vc{{AXME&gAjEm2@2j+chKM$bvq5Ns@rIALETD&^Xe8FoKwH1!C7@P4bG^WXz-)D zkp`#L4Kz5VuBX9CbsY_UP}kDndvy&BzEfAz;Dox02FKNvG&rWNputgfISr1e%V@Ac zT}p%X>Jl2PQy0@ zDe8C{OjgIyV3InP1{2jWG#I9SL4%>{Xc`PrN6}!g`Z)~-sUvAHP#r;o0qSrP6!=>G zj0A-as*nC#|1+-t3oq2#leJlRf!2-&^R>1#n5TV0gSlE88qCpJ(_psNiUzZ^mNb~D zwV=TatvL;*Yt3lzm6kw*XR*web zwYoGIr`4gsSS_9gW3<{d_(F@L!D!7zgHf832A^vV8jRFx(O`sT(qOn|(BLzzCJlyZ zHE1wYt4@OlH0YqIG-$6W zG-#*EG-#_yH26dlY0yR!XwX{YY0ygJXwXtCNrM(z2^uuliqoK(R*VJ-T2UG_)r!!d ziB^~fjkQ8FXrvXSK?AJ-4eD$8X;4qgM}xXrUK-TV^3Wh&%T0sYS}q#IX*p@&(sIzC zmX@6c*|cml2-ULEAVkYTgJ3N)2?{;eGST3fmXQWewG1?PsHLaDJuMv#ZfW5(xT%HF z;1?~F20v>dG`OJ!)8M)mM1yNuAPs)f0%&kmv(w;;=1+smnvDjRG(Q?#)O=}hLGz)( zdCi*!-)UYnIHA6#!EyB!4UVZVX>e41L4zaea~gcBKBK{5^(hU$QJ;{Y@FK0lf9rq7 z^?%Xa+BLE^i{{dPqCrmWDh+aIS7?x3yG(;@+9euf)h^N?i*|tqnYHsY$fTX4K}PK? z4KiqFXpmm}kp}6s(=_naPSL(BQdtoCc4zV>I|j zJ4%B;wIejRt$j;_U$w(DxTSqVgPYnR8vLRiq`}YH0UDgu_S4{uwvPsfwY@a>M%zP! z{n~CC?A3PBV2`$w2D`N#G}xtWr@>Bb8x3}7TWPRG+d_k{wXbQgS=&s5b=oExtkpKs zV70b^2FtbeG+3mqqrpOLEe#fEYiKZETTO#`+A12%)mGAAj<$jZv$f?kn5HeG!BlN2 z4W?*IXfQ@wOoK|=A{vy|7Sf=UwtxnOwD~m1tIeZ9h&Go7f!Z7z1ZcBqVAp2Rz+an5 z1DiI327cOf8u(~m(ZE}qMguQxDhUd|)~3+li8h%AkF`lOc%)6F!9#5V4en}R(%^S( zJPqz><7jYI8%u*L+87#K*1n*@MQt<d>*L4*C;a2o8>KBK`N zZ5R!9YeQ+UOB+Iio!Vd;?9c|$V5>He23xcNH27NUPlL@`KN@V%`qE&%)`te`wB9sW ztM#J68tqdWtk!zcV3pQ`1}nAhG+3c^qrq~mD-D)uU1+dW>r8_sS|<_|&7)oaZ~f1> z{x24+$CI^LEI_YK1G^qaf}*c<7Y!ciP8$5JJ7{oMuSJ8~x=Dkdb%O?1^_ny|tJk2x zNxeD^j_K8C@QofzgAICB8m!W*&|sxrnFcHLN;FumSERuLJ%$GJ^$IkYs+Xt1B)uFB zChBErFhMUvgYkN48jRCR(O|3|O@lFd6b-)6BWW;NkD$RQU8lk4x<-SMx=Mo)xAL&`&Q)gI0PG8no04 z)1ZZ3hz8B|f;4ER7ob6co}UIy^?WpFqUWVSV?7TI8tJ)d&`{4sg9ds|8r0Ww(4d~4 zod$LFY&58&XQe^Bo`nXr^~^Mg(=*Y)rDvppQ_nyHhn}7Wwe)l}F!gX67GRgKByZ4Px~`8dTK-Xi!DB)1b2MPlHOjjRqBUKN`g7zBH(y`_Q1g?oESo zx)%+~YOiTfMtenr(%MTJl+s?%AXFii&_LH7(?HW6(LmK6(m>H3 z&_LGyrGcdVLjzI!n+Ae*p9Z}47Y#V=9t}!rf6}0Yc9#alwLfT3O#7V%MYZ2(P(-^! zgTmTv8Whrgr9naM77Yq$H))Vx`-KMiw4X^(EL^Yi-};|%{a^fB{U}+R#SiO8Xz-2x zEe&?-hiR}=|Aq$J^+Pn+rXQri*ZKh(tk(C_V3od)1}pWwG+3tZp}|spHw~8PyJ#?9 z-${dc`VJb*)wk1Nj=qfsBlN8_7@}{XL4W;g8uZgQ)1a@ui3Yv(jWp<`Z=k`a`g$7l z)Ys9VhrX5u-Sssz=%%lxK~sGd4XWuYX%MTgpg~oAISnf7%VN1|{{GG$^6Zph0ncIt_~H zUm-A!21WI$G$^7^p+NzCG7a+UlMt9lgM9h~8syc#L|{A(^62AekXs*1gIxL;8syZ! zKwvZta_FOIkX`>Afsr)GrjMXOR(&`Pvgn`DAWR=dgHU}a4MOxGGziiM(;!eEM1uf* zAPI`S(g)DsrQV+gFZ6yic&_)Q!85%N4W8<~X>d#LMT1}TPigS8-jfDf^&T|XqIajk z*LpV^Y}C8bV1wR;21E7EG#H|HqQPLjBMk=W9ca*BZ%>1MdOI5Q)!WjbkNyb_dh2ay z&`WPkgD!e28g$lM(x9W>f(9M*<}`@Yo6*3jC(yv5H>E+O-h>7bdSewHH0wDc+Klhylg@8jM}ya#(X@K(J;t;Z{D{WXW2KA&`N*D9fB_vW2@wCU2l zQ}dqfx^%7{TdQh(?O0ikjCQCAl(SrA9eBaaJEH{;@t(E52%MLcAj(F1Bj48tc5KSvdM*II+_uBu7+n){afk zR3*ZBJ--#?n_5tn+Huvrm+dm!0I}0-4a7FHB@kQ97Cp|!%`!lQnfYk3ber)T5L=8pK(sZM0a4GG1B7Wz0iv+c8;C+iFCcOn z-GRtqbOR#0(G`dw!}>GgRDW6W)Tj@{6QdpwkBz$I9HLyq2s;fLMEKL7euRw%^&0SO#?H+iw1`Nng%uXS2U=mzobD`{RIuG=+9|TS${@@viegRl+mBi zprHPk23hq-Bq;ktr%y`D{-M(+rDbpE^hs&i>pFc>TK1YwpOlvUNvBUr%U;##lhU$R zbo!*U>}8!kDJ^?Rr%y`DuGHz1(y}Xb`lPh%68$%_vC0hB@6g~g{WcAT>A%uosD6tE zL-d<87^MF~f)cU%&orp2-=IMi{W=Y@>DOqGRsV?w>GZ2K2-mNWp!iSvWg1-7FVWzN zevt;3^$Rq(q@Sn3Mg1HNF6d`za9%${gLC?iG&rlDrokEg6b*jVPtxF&{sRq8>fh7g z2mL!59Mex&huitz9dM`eUy0}cjl8b=gl`TXAKo^+VtB5wM`0(!R)!4^YZ?|6mLc?R z=;6@$p&dh`Lhgqw4`~*XE%;>csNmYcd4hfm+8i`Es76rc!0Ukv16u`_3G@#*889=T zRe)fBYCmM3Zy#WdSHUlr?-SoMzUzI*`nL70?3>T$h0g__%{~)+I{H-eDdgkjeZ_m5_Z080-iCKE zZ$Gc=;a5_5p!fc-g0|?)K0a+*ckI-q*08KQ^l= zdWzaORMe`CydSF#_qJxVtf)=4m$h6?(nYD(W5iXd9UoV{Qhb%liT75wN?d%UxY|wj zGeyfEiQY#xv-=(+A|fK)m65m)8xaw$M+7qjsS!yvm>8r-N@_$H4$`6{-(5+MkkyDF zmLM%DFA}d587WB-;VeO_$CV;gH6kF*K~@%rq&+AqA~dZ*s+Ginu~v>GkU1htx*{di zs~%r1p;k=gD78}UxY~6i6ROvWuM+2U7%}nH9krV5Vk$?DM&;~eD<=w-vxB7^S%&58 zWh*BV-OnDjaw1SUyH%T-RZp$GYQ%$GM$r}L zMXaoYrN;~^%JGarMLPavP!Udi?5b$G<8OwtG{-{*r8-_SD8+G)LCKCkppv6?$8oHp zqMf4|lTld3nLPLp)b4asA)H>w#DJw(u$8UBiv=V&Q&a*TZ&&O%LlC z<_zP)0zz+w?hBnA+9xzVR0<6Vxf60IWPZqikoqB7NV?#=!AF7@2M-Bu92^y#Dd>LC ziJ;{{!-JXyl?log_#p6P;Of9p*3LkMz+3@O0?q`i4;UNJHlT7qKKl#%1^Z_E1bat& zHG3hum;V+2ZT?gIyZRgc#r*wj*KNCO(``L%P8(+n@Vn`^&u_M0AHR4%$uGqBj_)Dg z`Mv{u>-%cH>3r_`9PwG~GsLH{Pn1t4@B7{-yq9|q_ipB0#ygwWgOBYGz!Tq3O$Yf~F7G5t`my2WWb6?VCCl&rW4m3nvPsEXgY8S(6r~8Leq|G z0!>@4F*KiWji716HH4-$*8rMUTzzO-a`m8T!PSMPIaddoW?Vcp30!SxnsRZ_G~ry( zH0GSpG~yi4G~{YQ(||Lfsm~eE)Z=PGQzC61Oej;hB?dJ`c~F zZ1Z?{=46}8!!sw_93GxI*&=v&=48`(c;;l&czEVyQ~9hYw`>ZZ1sa*p42{HRf=1*s zLL=}QpyB!S&~SV@XiDdjd^*?lCm!xJS^0aSx#hP8b9t2XneWfq4D8hVLNsml+6rVc+Cns|N? zG`0DG(8TcrpmFj2p>gv4pmFehp{d39fyU%}Lu2s0psC4!3QY~ZCp6Xh9?+EIyF*i! z?*>h2zAH4P_%6^y@tvWGYeN&x$3YXuyPyf>ozR5v4rqe;TF?aXCNzP(0Zjm3 z6B;{T0~&w6Iy5%E8Z>@`ex(A?uoLGvdc4b5FX3YtIoNN9fNBcS<>*P*$?YtY>0RcLL$jCXpxMKhgl0Ei0-DWyacDO2#h}^97lmd8Uj&-v zd|_yo@`a#T!WV>QF<$@~{}%k%|JMH>uK(@1`Nyd4?78?y(B$MFLX(4k08MuOUud%N z|3H(K{~MYt{C#LL^M65;iN6O;M*dG|GVphyNzeZQO*;N}Xu|p5pb6veKoiQ}h9-#r z6`DZ)7Bm6;O=#@=FVOh&KSN{VZ$RV6Ux&t*zXpvD{}VLc{8ebY_$$cxzveGP^NPO& z%}f3wG%xrI&^+hQL-UM32hCIdEHqE}GtfNde}v`{e;S&H{3&Q2@F$`9m;V8pfB5gA z`J4X^n*00-X#V1lLvxQm2F;)RQE2Y+N1*wG{}!6x`NPos#(x9N9sUqBxA}w6{K_AI z<`Tajnv48CXwLI{p;^N3f#xfIH#F1uUC>PBcS19T-vP~JemgXi_-)Wk;I~5aCBFrl z@%-1&jN>;$GnU^3%@}?oG+*!=pc&1thh`MN4w}#Twa|><*FZCzUk%M?{3>XM@hhPj z%CCTC2)`Vf!Td642JuUw8OSezW&pn!n*RJEX!`LBq3O#nfTj;WADZ6$JZO6HbD{Z^ zp94)#el|2c_*u|&=VwCGjh_KcSAIG)UHGq{>C8`qrV~FEnvVPwXgctdp=r-gf~Flm z5t_FA1ZY0tzl5d@KOPx-9{$OH>;F{N|1*S^u7(2u-1x zEHr^;lF%5Mi9#c2CI}6o`BG>A&3K_cG~0{e>#f z^b;yW(^sejO&_5mG`)owXnF}1p!rlN4^2;@95g+Ive0xF%0SaiC=E?lp%gS-glK3w z3sKN?5+b4LC`3ThLC~RTFKE!T6I5v03JNrz2r@Kn1PPkff(T73L4c-(z(dnq;Gk(H zl!PWhC;?4Vp*S>6gksRt7m7ktPbdOSU7;{Eb%a9D#0v$XsVx+MCQir?jZ4S}jZ?@A zjYG%-O)VieG^UUX8binlO-&&OG&O|m&{P+)K~qi03Qeq#1)8ctW@xGinV_jGWQ3-Y zkO7*CLV9RogmlnU5W=A;FN8r;P6&mjtPlcC86g-NMF@gM5(1$Sg#c&-!43^C_(Q`9 zHfTx;e$bQGo{40D5%|F6n zX#N(yf#$w&2%5iygV5X)4nT8K*bmJhVIMRDg}u-W5cWXRN!X1{x&y*4WWpZ^JE6HJ z?11J^VLLQ;g>BIMDr|-3maqkyo5I)7{32|I=4W9OG&h8e&|DWbKr>fZ56v`T9W=v* zwa|Pftbt~ruo{{H!YXL`3oD`NC#-;`zOWpcdcrbj>IzGtsUs|bCSF(!O>JQjG;zX0 zXk5YqXdJ?PXle=bpfQEH&=|rTXle?xp{XIvf+j|o2~7oI1~d`EbY#LF3130;n=lO- z`wzlYXucPwK=Yk28JZKqBxsHc6QMaKOn~O7@Fg@ygz?ZE7REvIjW8CPL&6wn4hmmD zb3hmk&3<7NH2Z|lq1h{pgl3O00-D{zaAKNS5V}IMT<8MLGNCgxONCC*ED<_FvsmZ=%_5;aGz*1x&@2$zLNj0Z1e$q58)PzE z6HflO{{L|OpXHHQ8r5BvQ(`G-PKwdc92BFVIUq(tvsa9OW{;>tlSkB`$t9}DWPT+o z&^!`lXs(G8H0MMSn$w~H%_)(G=A_6$vq3Bg%|x*TGy}!r(DW6HLDNSp3QcdZ2sFLK z!q9vw7J{aySP+^XVgYD6i}|7HB<6#rqnH<(4q_f?T8O!!X)fl1rm2_{nv7x&XoAG- z&;*Lvpa~GOLgOQ5fyP_R42_qV37Jf<#f;Fr5;H(^TTBnluVOlA&WhpC{2+!wGg%CU zW}FxT%~&xQnxSG4G(*HdXnKnQ(DW4T&~y;}p=mGLps6AHK@%(bLQ_TbK_=rl(Hokx zq8BvBh1bv=6J9}cRCo!^5#a?i-wMy6IV?Pb<{RNDG>3#I&>R#VLvuiQ1kHZoAvF7h z2hi*l{)J|b@DDV*g}}E}%G(QVJLUThnjZBuOVwwNe z{~xaZbCwpDp}NaiN?Zy}w73MCC~+|~k>Vm~G;tv`s<;3eNt_Q&QE?tLMZ~$#6c*<| zlV6+-O+IlJG>W90ko&@pEXNh$EqSERKNY zkvJThhvH|@JP?OL^RGA*nt#M0(EKe9hUUIF2%5jdfzbRR4uIx&u|G7wiT$9tBld;n zqSyzT3u13*PK&*uIVFAy%}KE*G?8KtXd=Y!(C}h6XiA7(k;(Q%>;lb0u`@Ie#7@xM z5<5b(O6&m5O0hjOE5vrt%oW>0Ge`Ucn%QC-Xl9A6p_wVRf@X%;5}N5^3uwL)n?o~A zYzEC#F#(z>VpC`)i%p=JBsPX-qSy$U31UNNz7!ikGhVC@%{Z|hG-JiO(2No5K=Xwd z56x(?HZ-HeIA}f>UC@jaozRRB9ncIHYe7>%G@&Uc8qky#YeJ)mHK0+&>d+`+HE3ip z78*&c3XLdMfhNCL8JVoF#Y)h;5-URURE&Y7iLGrGsXT6b?--DGZwGQYbXlq!4JTO2N=nk%FM9ECoVSNeY0b zqGX3AM)HTIf@DJ`@0XGvG~*>-XvRrC(2SM5p&282LGy+98k*7KD`-ZEFQNHdd;!f! z@i{aj#AncS6Q4rUReSWycTak^Gdu4%}enY zXkLgvLvu;I0nJ76Iy4u=YtWn*e}d+mcomwn;uUDlh?k+6Enb3VmUt1Gnc@X#W{BsZ z87-cJW~6u)nxWzuXoiSCLNi!A4b33&6f~X1lh70we}JZ#_&qe)#qXfWCZ2#Mt9Trm zEaEX}GKfc^NiQBjCie^RTWFq(hoN~Qegn;8@enkR#Dma06c0f2K->?_zv4b<{t@>= zlU>{cO*U~iG?~R+&}0&KLX%P40Zj&RJ2JUWiQACLc~jg9%_?yVG=0Udp=m5`hNh9Y z37UrDMri7Z8=$Exu7}1Yu7k!Yu7xH>Tmwx7aWypM#Z}Oh6IUXW@2r&RzxDrz>;Hn4 zrNOA~3RaQ^K~qs02u+MM0GbL?e`v}}{h%o)^@XOa)CZa}Qg3L2rC!hkNuNR!DD{LU zK;;ZnN$;+rBV%OmPpm1nJQI-W{MOG&19)6G?Sz%&`gvnLo-3D1kIOH zMQFxLG0=>YDnK(&L#0yC43VOt87xIXGf0YrW}p-S z%>YS;_#n!hC;n)?z5&2LgkXzoZQp!r!U z4vn8w3>qJ)C^TMD5oGc`mI_1jNGb%)L#ZG%52OOn{43>$=8lvPn%h!dXl_V(pt&yP zhUS`-3!0y#oX}jAazJxM$_~wCDH}AGq^!_fl(HaGu!=O~zxDrz>;EF#r9V*J71=2L z4$TJXH)z&Ncc57#-G*kB^eZ$grCZR=_oW_(h+0|J&?YI=3nVB zG|QxKpjj#%f@Xr?Sp27v=^G;(jI6&lXgQhOxgv_P-!PLL!=$h z43@S-Gf3J7%|K}@Gy|k9(DawShNhRa8Jak06EroYjnKqM8=#S-_0WjYI%ouGEi}Be z1{zLU4NXaD6*MKJmCzKIRzQ;(h_I_q{YzKrA5dTyd^D!=4WXE zG&iLA&|Hz`L33G}3(X~I4m1~~+0bm4We6s%s!5+g6DtivrpQU@?tkn557+-C3d;3R-IXXH*M%mJ zTnC!$ay&E{<=W6>kmI09FT0=#lby&EedIxHsUw$$CSEQDO>H?Enm9QM8kZaijZ=<*#v$v_)RHx5Oj(7-kQHb|S%xNqEJ2fA z7NJQe3($niJTk@Z$s9DB=mrFpiPA(2jTe%oCpU6d_X(JbbrnOucnpSclXj;kz zp=lu(fTp>eADU)zK4=o;ywEh2^FY%?&J9gNITtkXa!zPmat>&sgZJv6iBbkNL_!=afehe0z#4uxjA90JW(axgU0 zgyL$*QFUG{^fv+N5^C)o#@jaOfI`2aLq<^9lXk@rFKwY(Ra z&GH^-Hp#o8*(mRVW`n#Fn)UJyXx7Qwp;;?$gJzAq6`IxZ7HC$5T4$Vw?88kEG zrO-^5mq7ECycn8k@*-%a$_t^HA}@euvOFJ}N%A~sCdzZ6nIO-B=1X}tG~?x2(2SF3 zLNivL0nHeBIy7I%UqLfUo(9e5@>FO>%2S{jAy0;8xI77(Ve&+1hRPG587zMZ%^-O^ zGy~;v&pcG+pGu&~%muLDNYd2u(+M05l!s{?N3S`$5xA?h8#@xeqj-$i1OyBlm)) zwfreGt>m82w3K^5(?aeJO>?;$G|l9$&?LxRplK?1hNg+!37W=oM`#+!9iV9_w}+;I z+zy)ha$9KX$)7+|S8fAM9l13$@p3C@YRfI5iIZC(Q)aZ>9GX#bGiW}S6QCI>H-%<| z+yt6|a${%)$c>=sFE>P{><;GXo@Pi zp(&!|f~K&N6PiLw4ruZz*`dj+WP>J;k``De`vMK4I z$)co#CbJR_O(rD_nv6;)G#Qi-Xwoae(4

pb1w3p$St0pb1s%(1a-d&;%B3 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

EUel1HdV)z>ADP!E`| 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

3VOvf}##S~1& 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 z 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

p3Erfefv|93Pv{db_;d9XJ& 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

v41vAup67M`Wa68~2F=Y@; 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 z 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

2ZX!6kkK-Sd*hUx^>fKp#5YdxdTNNR-# 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 z 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 transformation, this is EPSG:2393 (\"KKJ / Finland Uniform Coordinate System\"). The input coordinates are assumed to be passed in the \"normalized for visualisation\" / \"GIS friendly\" order, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." + }, + "output_crs": { + "$ref": "#/definitions/crs", + "description": "String identifying the CRS of target coordinates in the vertices. Typically \"EPSG:XXXX\". If the transformation is for vertical component, this should be the code for a compound CRS (can be EPSG:XXXX+YYYY where XXXX is the code of the horizontal CRS and YYYY the code of the vertical CRS). For example, for the KKJ->ETRS89 transformation, this is EPSG:3067 (\"ETRS89 / TM35FIN(E,N)\"). The output coordinates will be returned in the \"normalized for visualisation\" / \"GIS friendly\" order, that is easting, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." + }, + "transformed_components": { + "type": "array", + "description": "Specify which component of the coordinates are transformed. Either \"horizontal\", \"vertical\" or both", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string", + "enum": [ + "horizontal", + "vertical" + ] + } + }, + "vertices_columns": { + "type": "array", + "description": "Specify the name of the columns of the rows in the \"vertices\" array. There must be exactly as many elements in \"vertices_columns\" as in a row of \"vertices\". The following names have a special meaning: \"source_x\", \"source_y\", \"target_x\", \"target_y\", \"source_z\", \"target_z\" and \"offset_z\". \"source_x\" and \"source_y\" are compulsory. \"source_x\" is for the source longitude (in degree) or easting. \"source_y\" is for the source latitude (in degree) or northing. \"target_x\" and \"target_y\" are compulsory when \"horizontal\" is specified in \"transformed_components\". (\"source_z\" and \"target_z\") or \"offset_z\" are compulsory when \"vertical\" is specified in \"transformed_components\".", + "minItems": 3, + "items": { + "type": "string" + } + }, + "triangles_columns": { + "type": "array", + "description": "Specify the name of the columns of the rows in the \"triangles\" array. There must be exactly as many elements in \"triangles_columns\" as in a row of \"triangles\". The following names have a special meaning: \"idx_vertex1\", \"idx_vertex2\", \"idx_vertex3\". They are compulsory.", + "minItems": 3, + "items": { + "type": "string" + } + }, + "vertices": { + "type": "array", + "description": "an array whose items are themselves arrays with as many columns as described in \"vertices_columns\"", + "items": { + "type": "array" + } + }, + "triangles": { + "type": "array", + "description": "an array whose items are themselves arrays with as many columns as described in \"triangles_columns\". The value of the \"idx_vertexN\" columns must be indices (between 0 and len(\"vertices\"-1) of items of the \"vertices\" array", + "items": { + "type": "array" + } + } + }, + "required": [ + "file_type", + "format_version", + "transformed_components", + "vertices_columns", + "triangles_columns", + "vertices", + "triangles" + ], + "additionalProperties": false, + "definitions": { + "crs": { + "type": "string" + }, + "datetime": { + "type": "string", + "format": "date-time", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" + }, + "extent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "bbox" + ] + }, + "name" : { + "type": "string", + "description": "Name of the extent (e.g. \"Finland - mainland south of 66°N\")" + }, + "parameters": { + "type": "object", + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + } + } + } + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + } + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/world b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/world new file mode 100644 index 00000000..9119eed8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/proj/world @@ -0,0 +1,214 @@ +# SCCSID @(#)world 1.2 95/08/05 GIE REL +# proj +init files for various non-U.S. coordinate systems. +# + +lastupdate=2016-12-12 + + # Swiss Coordinate System + +proj=somerc +lat_0=46d57'8.660"N +lon_0=7d26'22.500"E + +ellps=bessel +x_0=600000 +y_0=200000 + +k_0=1. no_defs <> + # Laborde grid for Madagascar + proj=labrd ellps=intl lon_0=46d26'13.95E lat_0=18d54S + azi=18d54 k_0=.9995 x_0=400000 y_0=800000 + no_defs <> + # New Zealand Map Grid (NZMG) + proj=nzmg # Projection unique to N.Z. so all factors fixed + no_defs <> +# Secondary grids DMA TM8358.1, p. 4.3 + # British West Indies + proj=tmerc ellps=clrk80 lon_0=62W + x_0=400000 k_0=0.9995 + no_defs <> + # Costa Rica Norte + proj=lcc ellps=clrk66 lat_1=10d28N lon_0=84d20W + x_0=500000 y_0=217820.522 k_0=0.99995696 + no_defs <> + # Costa Rica Sud + proj=lcc ellps=clrk66 lat_1=9dN lon_0=83d40W + x_0=500000 y_0=327987.436 k_0=0.99995696 + no_defs <> + # Cuba Norte + proj=lcc ellps=clrk66 lat_1=22d21N lon_0=81dW + x_0=500000 y_0=280296.016 k_0=0.99993602 + no_defs <> + # Cuba Sud + proj=lcc ellps=clrk66 lat_1=20d43'N lon_0=76d50'W + x_0=500000 y_0=229126.939 k_0=0.99994848 + no_defs <> + # Dominican Republic + proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W + x_0=500000 y_0=277063.657 k_0=0.99991102 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=25d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=28d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=31d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=34d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=37d30'E x_0=300000 k_0=0.99985 + no_defs <> + # El Salvador + proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=89dW + x_0=500000 y_0=295809.184 k_0=0.99996704 + no_defs <> + # Guatemala Norte + proj=lcc ellps=clrk66 lat_1=16d49'N lon_0=90d20'W + x_0=500000 y_0=292209.579 k_0=0.99992226 + no_defs <> + # Guatemala Sud + proj=lcc ellps=clrk66 lat_1=14d54'N lon_0=90d20'W + x_0=500000 y_0=325992.681 k_0=0.99989906 + no_defs <> + # Haiti + proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W + x_0=500000 y_0=277063.657 k_0=0.99991102 + no_defs <> + # Honduras Norte + proj=lcc ellps=clrk66 lat_1=15d30'N lon_0=86d10'W + x_0=500000 y_0=296917.439 k_0=0.99993273 + no_defs <> + # Honduras Sud + proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=87d10'W + x_0=500000 y_0=296215.903 k_0=0.99995140 + no_defs <> + # Levant + proj=lcc ellps=clrk66 lat_1=34d39'N lon_0=37d21'E + x_0=500000 y_0=300000 k_0=0.9996256 + no_defs <> + # Nicaragua Norte + proj=lcc ellps=clrk66 lat_1=13d52'N lon_0=85d30'W + x_0=500000 y_0=359891.816 k_0=0.99990314 + no_defs <> + # Nicaragua Sud + proj=lcc ellps=clrk66 lat_1=11d40'N lon_0=85d30'W + x_0=500000 y_0=288876.327 k_0=0.99992228 + no_defs <> + # Northwest Africa + proj=lcc ellps=clrk80 lat_1=34dN lon_0=0dE + x_0=1000000 y_0=500000 k_0=0.99908 + no_defs <> + # Palestine + proj=tmerc a=6378300.79 rf=293.488307656 + lat_0=31d44'2.749"N lon_0=35d12'43.490"E + x_0=170251.555 y_0=126867.909 k_0=1 + no_defs <> + # Panama + proj=lcc ellps=clrk66 lat_1=8d25'N lon_0=80dW + x_0=500000 y_0=294865.303 k_0=0.99989909 + no_defs <> +# other grids in DMA TM8358.1 + # British National Grid + proj=tmerc ellps=airy lat_0=49dN lon_0=2dW + k_0=0.9996012717 x_0=400000 y_0=-100000 + no_defs <> + # West Malaysian RSO Grid + proj=omerc a=6377295.66402 rf=300.8017 alpha=323d01'32.846" + no_uoff rot_conv lonc=102d15E lat_0=4dN k_0=0.99984 x_0=804670.240 y_0=0 + no_defs <> + # India Zone I + proj=lcc ellps=everest lon_0=68E lat_1=32d30'N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIA + proj=lcc ellps=everest lon_0=74E lat_1=26N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIB + proj=lcc ellps=everest lon_0=90E lat_1=26N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIIA + proj=lcc ellps=everest lon_0=80E lat_1=19N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIIB + proj=lcc ellps=everest lon_0=100E lat_1=19N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IVA + proj=lcc ellps=everest lon_0=80E lat_1=12N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IVB + proj=lcc ellps=everest lon_0=104E lat_1=12N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # Ceylon Belt + proj=tmerc ellps=everest lon_0=80d46'18.160"E lat_0=7d0'1.729"N + x_0=160933.56048 y_0=160933.56048 k_0=1. + no_defs <> + # Irish Transverse Mercator Grid + proj=tmerc ellps=mod_airy lat_0=53d30'N lon_0=8W + x_0=200000 y_0=250000 k_0=1.000035 + no_defs <> + # Netherlands East Indies Equatorial Zone + proj=merc ellps=bessel lon_0=110E + x_0=3900000 y_0=900000 k_0=0.997 + no_defs <> + # Nord Algerie Grid + proj=lcc ellps=clrk80 lon_0=2d42E lat_0=36N + x_0=500000 y_0=300000 k_0=0.999625544 + no_defs <> + # Nord Maroc Grid + proj=lcc ellps=clrk80 lon_0=5d24'W lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> + # Nord Tunisie Grid + proj=lcc ellps=clrk80 lon_0=9d54E lat_0=36N + x_0=500000 y_0=300000 k_0=0.999625544 + no_defs <> + # Sud Algerie Grid + proj=lcc ellps=clrk80 lon_0=2d42E lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> + # Sud Maroc Grid + proj=lcc ellps=clrk80 lon_0=5d24W lat_0=29d42'N + x_0=500000 y_0=300000 k_0=0.999615596 + no_defs <> + # Sud Tunisie Grid + proj=lcc ellps=clrk80 lon_0=9d54'E lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> +# Gauss Krueger Grid for Germany +# +# The first figure of the easting is lon_0 divided by 3 +# ( 2 for 6d0E, 3 for 9d0E, 4 for 12d0E) +# For translations you have to remove this first figure +# and convert northings and eastings from km to meter . +# The other way round, divide by 1000 and add the figure. +# I made 3 entries for the officially used grids in Germany +# +# +# Und nochmal in deutsch : +# Die erste Ziffer des Rechtswerts beschreibt den Hauptmeridian +# und ist dessen Gradzahl geteilt durch 3. +# Zum Umrechnen in Grad muss daher die erste Ziffer des Rechtswertes +# entfernt werden und evt. von km auf Metern umgerechnet werden. +# Zur Umrechnung in Gauss Krueger Koordinaten entsprechend die +# Ziffer fuer den Hauptmeridian vor dem Rechtswert ergaenzen. +# Ich hab fuer alle drei in Deutschland ueblichen Hauptmeridiane +# jeweils einen Eintrag ergaenzt. +# +# +# added by Michael Goepel +# + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=6d0E lat_0=0 + x_0=500000 + no_defs<> + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=9d0E lat_0=0 + x_0=500000 + no_defs<> + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=12d0E lat_0=0 + x_0=500000 + no_defs<> + diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/drawable/rn_edit_text_material.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/drawable/rn_edit_text_material.xml diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/values/strings.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/values/strings.xml diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/values/styles.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/app/src/main/res/values/styles.xml diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/build.gradle b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/build.gradle similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/build.gradle rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/build.gradle diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/gradle.properties b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradle.properties similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/gradle.properties rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradle.properties diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradle/wrapper/gradle-wrapper.jar diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradle/wrapper/gradle-wrapper.properties diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/gradlew b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradlew similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/gradlew rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradlew diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/gradlew.bat b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradlew.bat similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/gradlew.bat rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/gradlew.bat diff --git a/packages/cppjs-sample-mobile-reactnative-cli/android/settings.gradle b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/settings.gradle similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/android/settings.gradle rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/android/settings.gradle diff --git a/packages/cppjs-sample-mobile-reactnative-cli/app.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/app.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/app.json rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/app.json diff --git a/packages/cppjs-sample-mobile-reactnative-cli/babel.config.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/babel.config.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/babel.config.js rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/babel.config.js diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/build/bridge/native.i.cpp similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/build/bridge/native.i.cpp diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/build/bridge/native.i.cpp.exports.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/build/bridge/native.i.cpp.exports.json diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/build/interface/native.i similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/build/interface/native.i diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/cache.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/cache.json new file mode 100644 index 00000000..7fabbf29 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ci/.cppjs/cache.json @@ -0,0 +1,12 @@ +{ + "hashes": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.h": "d105082c6e8c8652ea461e161c501e824b6b625f7b819490102c5c0699744249", + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.cppjs/build/interface/native.i": "eab7d231467438ee3e5f5af1c3ae64919c0514393461653981fb40f26b5edad3" + }, + "interfaces": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.h": "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.cppjs/build/interface/native.i" + }, + "bridges": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.cppjs/build/interface/native.i": "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.cppjs/build/bridge/native.i.cpp" + } +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/cppjs.config.mjs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/cppjs.config.mjs new file mode 100644 index 00000000..a186ee0b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/cppjs.config.mjs @@ -0,0 +1,37 @@ +import matrix from '@cpp.js/sample-lib-prebuilt-matrix-multithread/cppjs.config.js'; +import curl from '@cpp.js/package-curl-multithread/cppjs.config.js'; +import expat from '@cpp.js/package-expat-multithread/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal-multithread/cppjs.config.js'; +import geos from '@cpp.js/package-geos-multithread/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff-multithread/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv-multithread/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl-multithread/cppjs.config.js'; +import proj from '@cpp.js/package-proj-multithread/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite-multithread/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3-multithread/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff-multithread/cppjs.config.js'; +import webp from '@cpp.js/package-webp-multithread/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib-multithread/cppjs.config.js'; + +export default { + dependencies: [ + matrix, + curl, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + } +} diff --git a/packages/cppjs-sample-mobile-reactnative-cli/index.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/index.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/index.js rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/index.js diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/.xcode.env b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/.xcode.env similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/.xcode.env rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/.xcode.env diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/Podfile b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/Podfile similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/Podfile rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/Podfile diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/Podfile.lock b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/Podfile.lock new file mode 100644 index 00000000..1f2bfbb3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/Podfile.lock @@ -0,0 +1,1818 @@ +PODS: + - boost (1.84.0) + - cppjs-sample-lib-prebuilt-matrix-multithread (1.0.0) + - DoubleConversion (1.1.6) + - FBLazyVector (0.76.5) + - fmt (9.1.0) + - glog (0.3.5) + - hermes-engine (0.76.5): + - hermes-engine/Pre-built (= 0.76.5) + - hermes-engine/Pre-built (0.76.5) + - RCT-Folly (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Default (= 2024.01.01.00) + - RCT-Folly/Default (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCTDeprecation (0.76.5) + - RCTRequired (0.76.5) + - RCTTypeSafety (0.76.5): + - FBLazyVector (= 0.76.5) + - RCTRequired (= 0.76.5) + - React-Core (= 0.76.5) + - React (0.76.5): + - React-Core (= 0.76.5) + - React-Core/DevSupport (= 0.76.5) + - React-Core/RCTWebSocket (= 0.76.5) + - React-RCTActionSheet (= 0.76.5) + - React-RCTAnimation (= 0.76.5) + - React-RCTBlob (= 0.76.5) + - React-RCTImage (= 0.76.5) + - React-RCTLinking (= 0.76.5) + - React-RCTNetwork (= 0.76.5) + - React-RCTSettings (= 0.76.5) + - React-RCTText (= 0.76.5) + - React-RCTVibration (= 0.76.5) + - React-callinvoker (0.76.5) + - React-Core (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.76.5) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/CoreModulesHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/Default (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/DevSupport (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.76.5) + - React-Core/RCTWebSocket (= 0.76.5) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTActionSheetHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTAnimationHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTBlobHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTImageHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTLinkingHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTNetworkHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTSettingsHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTTextHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTVibrationHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTWebSocket (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.76.5) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-CoreModules (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety (= 0.76.5) + - React-Core/CoreModulesHeaders (= 0.76.5) + - React-jsi (= 0.76.5) + - React-jsinspector + - React-NativeModulesApple + - React-RCTBlob + - React-RCTImage (= 0.76.5) + - ReactCodegen + - ReactCommon + - SocketRocket (= 0.7.1) + - React-cxxreact (0.76.5): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-debug (= 0.76.5) + - React-jsi (= 0.76.5) + - React-jsinspector + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - React-runtimeexecutor (= 0.76.5) + - React-timing (= 0.76.5) + - React-debug (0.76.5) + - React-defaultsnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-domnativemodule + - React-Fabric + - React-featureflags + - React-featureflagsnativemodule + - React-graphics + - React-idlecallbacksnativemodule + - React-ImageManager + - React-microtasksnativemodule + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-domnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricComponents + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/animations (= 0.76.5) + - React-Fabric/attributedstring (= 0.76.5) + - React-Fabric/componentregistry (= 0.76.5) + - React-Fabric/componentregistrynative (= 0.76.5) + - React-Fabric/components (= 0.76.5) + - React-Fabric/core (= 0.76.5) + - React-Fabric/dom (= 0.76.5) + - React-Fabric/imagemanager (= 0.76.5) + - React-Fabric/leakchecker (= 0.76.5) + - React-Fabric/mounting (= 0.76.5) + - React-Fabric/observers (= 0.76.5) + - React-Fabric/scheduler (= 0.76.5) + - React-Fabric/telemetry (= 0.76.5) + - React-Fabric/templateprocessor (= 0.76.5) + - React-Fabric/uimanager (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/components/legacyviewmanagerinterop (= 0.76.5) + - React-Fabric/components/root (= 0.76.5) + - React-Fabric/components/view (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric/core (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/dom (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/imagemanager (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/leakchecker (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/mounting (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/observers/events (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers/events (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/scheduler (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/observers/events + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-performancetimeline + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/telemetry (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/templateprocessor (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/uimanager/consistency (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager/consistency (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-FabricComponents (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-FabricComponents/components (= 0.76.5) + - React-FabricComponents/textlayoutmanager (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-FabricComponents/components/inputaccessory (= 0.76.5) + - React-FabricComponents/components/iostextinput (= 0.76.5) + - React-FabricComponents/components/modal (= 0.76.5) + - React-FabricComponents/components/rncore (= 0.76.5) + - React-FabricComponents/components/safeareaview (= 0.76.5) + - React-FabricComponents/components/scrollview (= 0.76.5) + - React-FabricComponents/components/text (= 0.76.5) + - React-FabricComponents/components/textinput (= 0.76.5) + - React-FabricComponents/components/unimplementedview (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/inputaccessory (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/iostextinput (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/modal (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/rncore (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/safeareaview (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/scrollview (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/text (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/textinput (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/unimplementedview (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/textlayoutmanager (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricImage (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired (= 0.76.5) + - RCTTypeSafety (= 0.76.5) + - React-Fabric + - React-graphics + - React-ImageManager + - React-jsi + - React-jsiexecutor (= 0.76.5) + - React-logger + - React-rendererdebug + - React-utils + - ReactCommon + - Yoga + - React-featureflags (0.76.5) + - React-featureflagsnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-graphics (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-jsi + - React-jsiexecutor + - React-utils + - React-hermes (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.76.5) + - React-jsi + - React-jsiexecutor (= 0.76.5) + - React-jsinspector + - React-perflogger (= 0.76.5) + - React-runtimeexecutor + - React-idlecallbacksnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-ImageManager (0.76.5): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-graphics + - React-rendererdebug + - React-utils + - React-jserrorhandler (0.76.5): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-cxxreact + - React-debug + - React-jsi + - React-jsi (0.76.5): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-jsiexecutor (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.76.5) + - React-jsi (= 0.76.5) + - React-jsinspector + - React-perflogger (= 0.76.5) + - React-jsinspector (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-featureflags + - React-jsi + - React-perflogger (= 0.76.5) + - React-runtimeexecutor (= 0.76.5) + - React-jsitracing (0.76.5): + - React-jsi + - React-logger (0.76.5): + - glog + - React-Mapbuffer (0.76.5): + - glog + - React-debug + - React-microtasksnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-cppjs (1.0.2) + - react-native-cppjs-ios-helper (1.0.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-nativeconfig (0.76.5) + - React-NativeModulesApple (0.76.5): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-jsinspector + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.76.5): + - DoubleConversion + - RCT-Folly (= 2024.01.01.00) + - React-performancetimeline (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact + - React-timing + - React-RCTActionSheet (0.76.5): + - React-Core/RCTActionSheetHeaders (= 0.76.5) + - React-RCTAnimation (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-RCTAppDelegate (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-CoreModules + - React-debug + - React-defaultsnativemodule + - React-Fabric + - React-featureflags + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon + - React-RCTBlob (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-jsinspector + - React-NativeModulesApple + - React-RCTNetwork + - ReactCodegen + - ReactCommon + - React-RCTFabric (0.76.5): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricComponents + - React-FabricImage + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsinspector + - React-nativeconfig + - React-performancetimeline + - React-RCTImage + - React-RCTText + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTImage (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCodegen + - ReactCommon + - React-RCTLinking (0.76.5): + - React-Core/RCTLinkingHeaders (= 0.76.5) + - React-jsi (= 0.76.5) + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - ReactCommon/turbomodule/core (= 0.76.5) + - React-RCTNetwork (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-RCTSettings (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-RCTText (0.76.5): + - React-Core/RCTTextHeaders (= 0.76.5) + - Yoga + - React-RCTVibration (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - React-Core/RCTVibrationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-rendererconsistency (0.76.5) + - React-rendererdebug (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-rncore (0.76.5) + - React-RuntimeApple (0.76.5): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - React-RuntimeCore (0.76.5): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-cxxreact + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-performancetimeline + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - React-runtimeexecutor (0.76.5): + - React-jsi (= 0.76.5) + - React-RuntimeHermes (0.76.5): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-featureflags + - React-hermes + - React-jsi + - React-jsinspector + - React-jsitracing + - React-nativeconfig + - React-RuntimeCore + - React-utils + - React-runtimescheduler (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - React-performancetimeline + - React-rendererconsistency + - React-rendererdebug + - React-runtimeexecutor + - React-timing + - React-utils + - React-timing (0.76.5) + - React-utils (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-jsi (= 0.76.5) + - ReactCodegen (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactCommon (0.76.5): + - ReactCommon/turbomodule (= 0.76.5) + - ReactCommon/turbomodule (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-cxxreact (= 0.76.5) + - React-jsi (= 0.76.5) + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - ReactCommon/turbomodule/bridging (= 0.76.5) + - ReactCommon/turbomodule/core (= 0.76.5) + - ReactCommon/turbomodule/bridging (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-cxxreact (= 0.76.5) + - React-jsi (= 0.76.5) + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - ReactCommon/turbomodule/core (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-cxxreact (= 0.76.5) + - React-debug (= 0.76.5) + - React-featureflags (= 0.76.5) + - React-jsi (= 0.76.5) + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - React-utils (= 0.76.5) + - SocketRocket (0.7.1) + - Yoga (0.0.0) + +DEPENDENCIES: + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - "cppjs-sample-lib-prebuilt-matrix-multithread (from `../node_modules/@cpp.js/sample-lib-prebuilt-matrix-multithread`)" + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) + - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) + - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - "react-native-cppjs (from `../node_modules/@cpp.js/plugin-react-native`)" + - "react-native-cppjs-ios-helper (from `../node_modules/@cpp.js/plugin-react-native-ios-helper`)" + - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) + - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) + - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - ReactCodegen (from `build/generated/ios`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - SocketRocket + +EXTERNAL SOURCES: + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + cppjs-sample-lib-prebuilt-matrix-multithread: + :path: "../node_modules/@cpp.js/sample-lib-prebuilt-matrix-multithread" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :tag: hermes-2024-11-12-RNv0.76.2-5b4aa20c719830dcf5684832b89a6edb95ac3d64 + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" + RCTRequired: + :path: "../node_modules/react-native/Libraries/Required" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-callinvoker: + :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-debug: + :path: "../node_modules/react-native/ReactCommon/react/debug" + React-defaultsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" + React-domnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-FabricComponents: + :path: "../node_modules/react-native/ReactCommon" + React-FabricImage: + :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" + React-featureflagsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" + React-idlecallbacksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jserrorhandler: + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../node_modules/react-native/ReactCommon" + React-microtasksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + react-native-cppjs: + :path: "../node_modules/@cpp.js/plugin-react-native" + react-native-cppjs-ios-helper: + :path: "../node_modules/@cpp.js/plugin-react-native-ios-helper" + React-nativeconfig: + :path: "../node_modules/react-native/ReactCommon" + React-NativeModulesApple: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" + React-performancetimeline: + :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTAppDelegate: + :path: "../node_modules/react-native/Libraries/AppDelegate" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTFabric: + :path: "../node_modules/react-native/React" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + React-rendererconsistency: + :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" + React-rendererdebug: + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-rncore: + :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimescheduler: + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-timing: + :path: "../node_modules/react-native/ReactCommon/react/timing" + React-utils: + :path: "../node_modules/react-native/ReactCommon/react/utils" + ReactCodegen: + :path: build/generated/ios + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + boost: 1dca942403ed9342f98334bf4c3621f011aa7946 + cppjs-sample-lib-prebuilt-matrix-multithread: 554f1ab7f3b13c985a22db212ca8c22d7cc5b7b0 + DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 + FBLazyVector: 1bf99bb46c6af9a2712592e707347315f23947aa + fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be + glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a + hermes-engine: 06a9c6900587420b90accc394199527c64259db4 + RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648 + RCTDeprecation: fb7d408617e25d7f537940000d766d60149c5fea + RCTRequired: 9aaf0ffcc1f41f0c671af863970ef25c422a9920 + RCTTypeSafety: e9a6e7d48184646eb0610295b74c0dd02768cbb2 + React: fffb3cf1b0d7aee03c4eb4952b2d58783615e9fa + React-callinvoker: 3c6ecc0315d42924e01b3ddc25cf2e49d33da169 + React-Core: d2143ba58d0c8563cf397f96f699c6069eba951c + React-CoreModules: b3cbc5e3090a8c23116c0c7dd8998e0637e29619 + React-cxxreact: 68fb9193582c4a411ce99d0b23f7b3d8da1c2e4a + React-debug: 297ed67868a76e8384669ea9b5c65c5d9d9d15d9 + React-defaultsnativemodule: 9726dafb3b20bb49f9eac5993418aaa7ddb6a80d + React-domnativemodule: ff049da74cb1be08b7cd71cdbc7bb5b335e04d8e + React-Fabric: 2e33816098a5a29d2f4ae7eb2de3cfbc361b6922 + React-FabricComponents: bb2d6b89321bf79653ae3d4ec890ba7cb9fe51c8 + React-FabricImage: 019a5e834378e460ef39bf19cb506fd36491ae74 + React-featureflags: cb3dca1c74ba813f2e578c8c635989d01d14739f + React-featureflagsnativemodule: 4a1eaf7a29e48ddd60bce9a2f4c4ef74dc3b9e53 + React-graphics: e626f3b24227a3a8323ed89476c8f0927c0264c7 + React-hermes: 63678d262d94835f986fa2fac1c835188f14160b + React-idlecallbacksnativemodule: 7a25d2bff611677bbc2eab428e7bfd02f7418b42 + React-ImageManager: 223709133aa644bc1e74d354308cf2ed4c9d0f00 + React-jserrorhandler: 212d88de95b23965fdff91c1a20da30e29cdfbbb + React-jsi: d189a2a826fe6700ea1194e1c2b15535d06c8d75 + React-jsiexecutor: b75a12d37f2bf84f74b5c05131afdef243cfc69d + React-jsinspector: c3402468ae1fbca79e3d8cc11e7a0fc2c8ffafb1 + React-jsitracing: 1f46c2ec0c5ace3fe959b1aa0f8535ef1c021161 + React-logger: 697873f06b8ba436e3cddf28018ab4741e8071b6 + React-Mapbuffer: c174e11bdea12dce07df8669d6c0dc97eb0c7706 + React-microtasksnativemodule: 8a80099ad7391f4e13a48b12796d96680f120dc6 + react-native-cppjs: a557b429a0f33cd5ab0603335113c01f9355fe59 + react-native-cppjs-ios-helper: 24275032a6124028683462f9835d40c135fd6e49 + React-nativeconfig: f7ab6c152e780b99a8c17448f2d99cf5f69a2311 + React-NativeModulesApple: 70600f7edfc2c2a01e39ab13a20fd59f4c60df0b + React-perflogger: ceb97dd4e5ca6ff20eebb5a6f9e00312dcdea872 + React-performancetimeline: e39f038509c2a6b2ddb85087ba7cb8bd9caf977d + React-RCTActionSheet: a4388035260b01ac38d3647da0433b0455da9bae + React-RCTAnimation: 84117cb3521c40e95a4edfeab1c1cb159bc9a7c3 + React-RCTAppDelegate: df039dffb7adbc2e4a8ce951d1b2842f1846f43e + React-RCTBlob: 947cbb49842c9141e2b21f719e83e9197a06e453 + React-RCTFabric: 8f8afe72401ddfca2bd8b488d2d9eb0deee0b4bf + React-RCTImage: 367a7dcca1d37b04e28918c025a0101494fb2a19 + React-RCTLinking: b9dc797e49683a98ee4f703f1f01ec2bd69ceb7f + React-RCTNetwork: 16e92fb59b9cd1e1175ecb2e90aa9e06e82db7a3 + React-RCTSettings: 20a1c3316956fae137d8178b4c23b7a1d56674cc + React-RCTText: 59d8792076b6010f7305f2558d868025004e108b + React-RCTVibration: 597d5aba0212d709ec79d12e76285c3d94dc0658 + React-rendererconsistency: 42f182fe910ad6c9b449cc62adae8d0eaba76f0a + React-rendererdebug: f36daf9f79831c8785215048fad4ef6453834430 + React-rncore: 85ed76036ff56e2e9c369155027cbbd84db86006 + React-RuntimeApple: 6ca44fc23bb00474f9387c0709f23d4dade79800 + React-RuntimeCore: b4d723e516e2e24616eb72de5b41a68b0736cc02 + React-runtimeexecutor: 10fae9492194097c99f6e34cedbb42a308922d32 + React-RuntimeHermes: 93437bfc028ba48122276e2748c7cd0f9bbcdb40 + React-runtimescheduler: 72bbb4bd4774a0f4f9a7e84dbf133213197a0828 + React-timing: 1050c6fa44c327f2d7538e10c548fdf521fabdb8 + React-utils: 541c6cca08f32597d4183f00e83eef2ed20d4c54 + ReactCodegen: daa13d9e48c9bdb1daac4bd694b9dd54e06681df + ReactCommon: a6b87a7591591f7a52d9c0fec3aa05e0620d5dd3 + SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 + Yoga: c7ea4c36c1d78ebbf45529b6e78283e4e0fe4956 + +PODFILE CHECKSUM: 324f2d96aaf384682c14f2adfe36d1a2beacdf55 + +COCOAPODS: 1.15.2 diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.h similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.h diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.mm similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.mm diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Info.plist similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Info.plist diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/main.m similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/main.m diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/Info.plist similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/Info.plist diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m diff --git a/packages/cppjs-sample-mobile-reactnative-cli/jest.config.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/jest.config.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/jest.config.js rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/jest.config.js diff --git a/packages/cppjs-sample-mobile-reactnative-cli/maestro.yaml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/maestro.yaml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/maestro.yaml rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/maestro.yaml diff --git a/packages/cppjs-sample-mobile-reactnative-cli/metro.config.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/metro.config.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/metro.config.js rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/metro.config.js diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/package.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/package.json new file mode 100644 index 00000000..d5761b2f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/package.json @@ -0,0 +1,72 @@ +{ + "name": "@cpp.js/sample-mobile-reactnative-cli", + "version": "1.0.1", + "description": "Cpp.js React Native sample", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-mobile-reactnative-cli#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "scripts": { + "android": "react-native run-android", + "ios": "react-native run-ios", + "lint": "eslint .", + "start": "react-native start", + "test": "jest", + "run:android": "react-native run-android --no-packager --mode Release", + "run:ios": "react-native run-ios --no-packager --mode Release" + }, + "dependencies": { + "@cpp.js/core-embind-jsi": "workspace:^", + "@cpp.js/plugin-metro": "workspace:^", + "@cpp.js/plugin-react-native": "workspace:^", + "@cpp.js/plugin-react-native-ios-helper": "workspace:^", + "@cpp.js/sample-lib-prebuilt-matrix-multithread": "workspace:^", + "@cpp.js/package-curl-multithread": "workspace:^", + "@cpp.js/package-expat-multithread": "workspace:^", + "@cpp.js/package-gdal-multithread": "workspace:^", + "@cpp.js/package-geos-multithread": "workspace:^", + "@cpp.js/package-geotiff-multithread": "workspace:^", + "@cpp.js/package-iconv-multithread": "workspace:^", + "@cpp.js/package-openssl-multithread": "workspace:^", + "@cpp.js/package-proj-multithread": "workspace:^", + "@cpp.js/package-spatialite-multithread": "workspace:^", + "@cpp.js/package-sqlite3-multithread": "workspace:^", + "@cpp.js/package-tiff-multithread": "workspace:^", + "@cpp.js/package-webp-multithread": "workspace:^", + "@cpp.js/package-zlib-multithread": "workspace:^", + "react": "18.3.1", + "react-native": "0.76.5" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/preset-env": "^7.25.3", + "@babel/runtime": "^7.25.0", + "@react-native-community/cli": "15.0.1", + "@react-native-community/cli-platform-android": "15.0.1", + "@react-native-community/cli-platform-ios": "15.0.1", + "@react-native/babel-preset": "0.76.5", + "@react-native/eslint-config": "0.76.5", + "@react-native/gradle-plugin": "0.76.5", + "@react-native/metro-config": "0.76.5", + "@react-native/typescript-config": "0.76.5", + "@types/react": "^18.2.6", + "@types/react-test-renderer": "^18.0.0", + "babel-jest": "^29.6.3", + "eslint": "^8.19.0", + "jest": "^29.6.3", + "prettier": "2.8.8", + "react-test-renderer": "18.3.1", + "typescript": "5.0.4" + }, + "engines": { + "node": ">=18" + }, + "keywords": [ + "cpp.js-sample", + "react-native", + "bind", + "c++", + "android", + "ios", + "mobile" + ] +} \ No newline at end of file diff --git a/packages/cppjs-sample-mobile-reactnative-cli/src/App.tsx b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/App.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/src/App.tsx rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/App.tsx diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/native/native.cpp b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/native/native.cpp new file mode 100644 index 00000000..b8726878 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/native/native.cpp @@ -0,0 +1,56 @@ +#include "native.h" +#include +#include + + +static std::string ooo = ""; + +size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { + size_t totalSize = size * nmemb; + output->append((char*)contents, totalSize); + return totalSize; +} + +std::string Native::sample() { + auto firstMatrix = std::make_shared(9, 1); + auto secondMatrix = std::make_shared(9, 2); + auto resultStr = std::to_string(firstMatrix->multiple(secondMatrix)->get(0)); + // return "J₃ * (2*J₃) = " + resultStr + "*J₃"; + + CURL* curl; + CURLcode res; + std::string response; + char errbuf[CURL_ERROR_SIZE*100]; + + curl = curl_easy_init(); // Initialize libcurl + if (curl) { + // curl_easy_setopt(curl, CURLOPT_URL, "https://www.cloudflarestatus.com/api/v2/status.json"); // Set the URL + curl_easy_setopt(curl, CURLOPT_URL, "https://test22.free.beeceptor.com"); // Set the URL + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"a\": 2}"); + // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); + // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); + // curl_easy_setopt(curl, CURLOPT_CAPATH, "/system/etc/security/cacerts"); + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Content-Type: application/json"); + headers = curl_slist_append(headers, "Accept: application/json"); + curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("CURL_CA_BUNDLE")); + + curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + errbuf[0] = 0; + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // Set callback to handle data + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Pass the response string + res = curl_easy_perform(curl); + if (res == CURLE_OK) { + ooo = "response: " + response; + } else { + std::string errorStr = errbuf[0] ? std::string(errbuf) : curl_easy_strerror(res); + ooo = "curl error: " + errorStr; + } + + // Clean up + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + + return ooo; + } +} diff --git a/packages/cppjs-sample-backend-nodejs-wasm/src/native/native.h b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/native/native.h similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/src/native/native.h rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/src/native/native.h diff --git a/packages/cppjs-sample-mobile-reactnative-cli/tsconfig.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/tsconfig.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/tsconfig.json rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread/tsconfig.json diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.bundle/config b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.bundle/config new file mode 100644 index 00000000..848943bb --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.bundle/config @@ -0,0 +1,2 @@ +BUNDLE_PATH: "vendor/bundle" +BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.eslintrc.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.eslintrc.js new file mode 100644 index 00000000..187894b6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: '@react-native', +}; diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.gitignore b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.gitignore new file mode 100644 index 00000000..6d4750c8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.gitignore @@ -0,0 +1,85 @@ +.cppjs +.yarn +ios/build +android/build +android/app/build +android/app/.cxx + +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +**/.xcode.env.local + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof +.cxx/ +*.keystore +!debug.keystore +android/app/build + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output + +# Bundle artifact +*.jsbundle + +# Ruby / CocoaPods +**/Pods/ +/vendor/bundle/ + +# Temporary files created by Metro to check the health of the file watcher +.metro-health-check* + +# testing +/coverage + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +!ci/.cppjs +!ci/.cppjs/build diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.prettierrc.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.prettierrc.js new file mode 100644 index 00000000..2b540746 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/.prettierrc.js @@ -0,0 +1,7 @@ +module.exports = { + arrowParens: 'avoid', + bracketSameLine: true, + bracketSpacing: false, + singleQuote: true, + trailingComma: 'all', +}; diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/CHANGELOG.md b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/CHANGELOG.md new file mode 100644 index 00000000..2e3c315c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/CHANGELOG.md @@ -0,0 +1,29 @@ +# @cpp.js/sample-mobile-reactnative-cli + +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @cpp.js/core-embind-jsi@1.0.3 + - @cpp.js/plugin-metro@1.0.2 + - @cpp.js/plugin-react-native@1.0.2 + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release + +### Patch Changes + +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0 + +## 1.0.0-beta.4 + +### Patch Changes + +- chore: add initial version of CHANGELOGS files +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0-beta.32 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/Gemfile b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/Gemfile new file mode 100644 index 00000000..85d7f682 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/Gemfile @@ -0,0 +1,9 @@ +source 'https://rubygems.org' + +# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version +ruby ">= 2.6.10" + +# Exclude problematic versions of cocoapods and activesupport that causes build failures. +gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' +gem 'xcodeproj', '< 1.26.0' diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/README.md b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/README.md new file mode 100644 index 00000000..578fb775 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/README.md @@ -0,0 +1,55 @@ +# @cpp.js/sample-mobile-reactnative-cli +**Cpp.js React Native sample** + + + NPM version + + + License + + + Docs - React Native + + +# Getting Started + +>**Note**: Make sure you have completed the [Cpp.js - Prerequisites](https://cpp.js.org/docs/guide/getting-started/prerequisites) instructions. + +## Step 1: Install dependencies + +```bash +npm install +cd ios +pod install +cd .. +``` + +## Step 2: Start the Metro Server + +First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native. + +To start Metro, run the following command from the _root_ of your React Native project: + +```bash +npm start +``` + +## Step 3: Start your Application + +Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app: + +### For Android + +```bash +npm run android +``` + +### For iOS + +```bash +npm run ios +``` + +If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly. + +This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively. diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/__tests__/App.test.tsx b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/__tests__/App.test.tsx new file mode 100644 index 00000000..9eac6fbc --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/__tests__/App.test.tsx @@ -0,0 +1,17 @@ +/** + * @format + */ + +import 'react-native'; +import React from 'react'; +import App from '../App'; + +// Note: import explicitly to use the types shipped with jest. +import {it} from '@jest/globals'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + renderer.create(); +}); diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/build.gradle b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/build.gradle new file mode 100644 index 00000000..e1736095 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/build.gradle @@ -0,0 +1,119 @@ +apply plugin: "com.android.application" +apply plugin: "org.jetbrains.kotlin.android" +apply plugin: "com.facebook.react" + +/** + * This is the configuration block to customize your React Native Android app. + * By default you don't need to apply any configuration, just uncomment the lines you need. + */ +react { + /* Folders */ + // The root of your project, i.e. where "package.json" lives. Default is '../..' + // root = file("../../") + // The folder where the react-native NPM package is. Default is ../../node_modules/react-native + // reactNativeDir = file("../../node_modules/react-native") + // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen + // codegenDir = file("../../node_modules/@react-native/codegen") + // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js + // cliFile = file("../../node_modules/react-native/cli.js") + + /* Variants */ + // The list of variants to that are debuggable. For those we're going to + // skip the bundling of the JS bundle and the assets. By default is just 'debug'. + // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. + // debuggableVariants = ["liteDebug", "prodDebug"] + + /* Bundling */ + // A list containing the node command and its flags. Default is just 'node'. + // nodeExecutableAndArgs = ["node"] + // + // The command to run when bundling. By default is 'bundle' + // bundleCommand = "ram-bundle" + // + // The path to the CLI configuration file. Default is empty. + // bundleConfig = file(../rn-cli.config.js) + // + // The name of the generated asset file containing your JS bundle + // bundleAssetName = "MyApplication.android.bundle" + // + // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' + // entryFile = file("../js/MyApplication.android.js") + // + // A list of extra flags to pass to the 'bundle' commands. + // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle + // extraPackagerArgs = [] + + /* Hermes Commands */ + // The hermes compiler command to run. By default it is 'hermesc' + // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" + // + // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" + // hermesFlags = ["-O", "-output-source-map"] + + /* Autolinking */ + autolinkLibrariesWithApp() +} + +/** + * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + */ +def enableProguardInReleaseBuilds = false + +/** + * The preferred build flavor of JavaScriptCore (JSC) + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'org.webkit:android-jsc:+' + +android { + ndkVersion rootProject.ext.ndkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + compileSdk rootProject.ext.compileSdkVersion + + namespace "org.js.cpp.cppjsSampleReactNativeCLI" + defaultConfig { + applicationId "org.js.cpp.cppjsSampleReactNativeCLI" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + buildTypes { + debug { + signingConfig signingConfigs.debug + } + release { + // Caution! In production, you need to generate your own keystore file. + // see https://reactnative.dev/docs/signed-apk-android. + signingConfig signingConfigs.debug + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } +} + +dependencies { + // The version of react-native is set by the React Native Gradle Plugin + implementation("com.facebook.react:react-android") + + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } +} diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/debug.keystore b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/debug.keystore similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/debug.keystore rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/debug.keystore diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/proguard-rules.pro b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/proguard-rules.pro new file mode 100644 index 00000000..11b02572 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/proguard-rules.pro @@ -0,0 +1,10 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/debug/AndroidManifest.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..eb98c01a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..e1892528 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQELBQAwYTELMAkG +A1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUgQ2VydGlmaWNhdGlvbiBFbGVj +dHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJvb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQw +NDI2MDg1NzU2WjBhMQswCQYDVQQGEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBD +ZXJ0aWZpY2F0aW9uIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZn56eY+hz +2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd2JQDoOw05TDENX37Jk0b +bjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgFVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7 +NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAd +gjH8KcwAWJeRTIAAHDOFli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViW +VSHbhlnUr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2eY8f +Tpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIbMlEsPvLfe/ZdeikZ +juXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISgjwBUFfyRbVinljvrS5YnzWuioYas +DXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwS +VXAkPcvCFDVDXSdOvsC9qnyW5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI +04Y+oXNZtPdEITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+zxiD2BkewhpMl +0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYuQEkHDVneixCwSQXi/5E/S7fd +Ao74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRY +YdZ2vyJ/0Adqp2RT8JeNnYA/u8EH22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJp +adbGNjHh/PqAulxPxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65x +xBzndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5Xc0yGYuP +jCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7bnV2UqL1g52KAdoGDDIzM +MEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9z +ZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZHu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3r +AZ3r2OvEhJn7wAzMMujjd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg new file mode 100644 index 00000000..4ac8f6a6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoBW.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg new file mode 100644 index 00000000..da311ad8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoColor.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg new file mode 100644 index 00000000..de00b72a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/GDALLogoGS.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT new file mode 100644 index 00000000..cd24b533 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/LICENSE.TXT @@ -0,0 +1,467 @@ + +GDAL/OGR Licensing +================== + +This file attempts to include all licenses that apply within the GDAL/OGR +source tree, in particular any that are supposed to be exposed to the end user +for credit requirements for instance. The contents of this file can be +displayed from GDAL commandline utilities using the --license commandline +switch. + + +GDAL/OGR General +---------------- + +In general GDAL/OGR is licensed under an MIT style license with the +following terms: + +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. + + +port/cpl_float.cpp +------------------ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC + +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 Industrial Light & Magic 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. + + +frmts/hdf4/hdf-eos/* +-------------------- + + Copyright (C) 1996 Hughes and Applied Research Corporation + + Permission to use, modify, and distribute this software and its documentation + for any purpose without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + + +frmts/pcraster/libcsf +--------------------- + +Copyright (c) 1997-2003, Utrecht University +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 Utrecht University 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. + +frmts/grib/degrib/* +------------------- + +The degrib and g2clib source code are modified versions of code produced +by NOAA NWS and are in the public domain subject to the following +restrictions: + +http://www.weather.gov/im/softa.htm + +DISCLAIMER The United States Government makes no warranty, expressed or +implied, as to the usefulness of the software and documentation for any +purpose. The U.S. Government, its instrumentalities, officers, employees, +and agents assumes no responsibility (1) for the use of the software and +documentation listed below, or (2) to provide technical support to users. + +http://www.weather.gov/disclaimer.php + + The information on government servers are in the public domain, unless +specifically annotated otherwise, and may be used freely by the public so +long as you do not 1) claim it is your own (e.g. by claiming copyright for +NWS information -- see below), 2) use it in a manner that implies an +endorsement or affiliation with NOAA/NWS, or 3) modify it in content and +then present it as official government material. You also cannot present +information of your own in a way that makes it appear to be official +government information.. + + The user assumes the entire risk related to its use of this data. NWS is +providing this data "as is," and NWS disclaims any and all warranties, +whether express or implied, including (without limitation) any implied +warranties of merchantability or fitness for a particular purpose. In no +event will NWS be liable to you or to any third party for any direct, +indirect, incidental, consequential, special or exemplary damages or lost +profit resulting from any use or misuse of this data. + + As required by 17 U.S.C. 403, third parties producing copyrighted works +consisting predominantly of the material appearing in NWS Web pages must +provide notice with such work(s) identifying the NWS material incorporated +and stating that such material is not subject to copyright protection. + +port/cpl_minizip* +----------------- + +This is version 2005-Feb-10 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined as +the following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, + Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, + Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, + David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, + Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, + Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, + Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, + Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, express +or implied. In no event shall Info-ZIP or its contributors be held liable +for any direct, indirect, incidental, special or consequential damages +arising out of the use of or inability to use 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. Redistributions of source code must retain the above copyright notice, + definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce + the above copyright notice, definition, disclaimer, and this list of + conditions in documentation and/or other materials provided with the + distribution. The sole exception to this condition is redistribution + of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this + license, as long as the normal SFX banner has not been removed from + the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating + systems, existing ports with new graphical interfaces, and dynamic, + shared, or static library versions--must be plainly marked as such + and must not be misrepresented as being the original source. Such + altered versions also must not be misrepresented as being Info-ZIP + releases--including, but not limited to, labeling of the altered + versions with the names "Info-ZIP" (or any variation thereof, including, + but not limited to, different capitalizations), "Pocket UnZip," "WiZ" + or "MacZip" without the explicit permission of Info-ZIP. Such altered + versions are further prohibited from misrepresentative use of the + Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," + "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its + own source and binary releases. + + +ogr/ogrsf_frmts/dxf/intronurbs.cpp +---------------------------------- + +This code is derived from the code associated with the book "An Introduction +to NURBS" by David F. Rogers. More information on the book and the code is +available at: + + http://www.nar-associates.com/nurbs/ + + +Copyright (c) 2009, David F. Rogers +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 David F. Rogers 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. + +alg/thinplatespline.cpp +----------------------- + +IEEE754 log() code derived from: +@(#)e_log.c 1.3 95/01/18 + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +alg/libqhull +------------ + +Only applies when GDAL is compiled with internal qhull support + + + Qhull, Copyright (c) 1993-2012 + + C.B. Barber + Arlington, MA + + and + + The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures + (The Geometry Center) + University of Minnesota + + email: qhull@qhull.org + +This software includes Qhull from C.B. Barber and The Geometry Center. +Qhull is copyrighted as noted above. Qhull is free software and may +be obtained via http from www.qhull.org. It may be freely copied, modified, +and redistributed under the following conditions: + +1. All copyright notices must remain intact in all files. + +2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + +3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + +4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + +5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +frmts/pdf/pdfdataset.cpp (method PDFiumRenderPageBitmap()) +---------------------------------------------------------- + +Copyright 2014 PDFium Authors. 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. + +frmts/mrf/* (apply when MRF driver included in build) +------------------------------------------------------ + +Copyright (c) 2002-2012, California Institute of Technology. +All rights reserved. Based on Government Sponsored Research under contracts NAS7-1407 and/or NAS7-03001. + +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. 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. + 3. Neither the name of the California Institute of Technology (Caltech), its operating division the Jet Propulsion Laboratory (JPL), + the National Aeronautics and Space Administration (NASA), 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 CALIFORNIA INSTITUTE OF TECHNOLOGY 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. + +~~~~~~~~ + +Copyright 2014-2015 Esri +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +cmake/modules/3.* (backported CMake find modules) +------------------------------------------------- + +CMake - Cross Platform Makefile Generator +Copyright 2000-2022 Kitware, Inc. and Contributors +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 Kitware, Inc. nor the names of 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. + +ogr/ogrsf_frmts/flatgeobuf +-------------------------- + +FlatGeobuf +++++++++++ + +ISC License + +Copyright (c) 2018, Bjorn Harrtell + +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. + +Flatbush +++++++++ + +ISC License + +Copyright (c) 2018, Vladimir Agafonkin + +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. + +ogr/ogrsf_frmts/flatgeobuf/flatbuffers +-------------------------------------- + +Copyright 2021 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv new file mode 100644 index 00000000..38295148 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/MM_m_idofic.csv @@ -0,0 +1,321 @@ +PSIDGEODES;ID_GEODES;NOTA_CAT;NOTA_SPA;NOTA_ENG +ESRI:102022;Albers_Equal_Area-Africa-WGS84;;; +ESRI:102025;Albers_Equal_Area-Asia_North-WGS84;;; +EPSG:5070;Albers_Equal_Area-N_America-NAD83;https://epsg.io/5070;https://epsg.io/5070;https://epsg.io/5070 +Azimuthal_Equidistant;Azimuthal_Equidistant-0-90-WGS84;;; +EPSG:4088;Cilindrical_Equidistant-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +Cylindrical_Equal_Area;Cylindrical_Equal_Area-15-0-WGS84;;; +EPSG:22171;Gauss-Kruger_Faja1-PosGAR98;;; +EPSG:22172;Gauss-Kruger_Faja2-PosGAR98;;; +EPSG:22173;Gauss-Kruger_Faja3-PosGAR98;;; +EPSG:22174;Gauss-Kruger_Faja4-PosGAR98;;; +EPSG:22175;Gauss-Kruger_Faja5-PosGAR98;;; +EPSG:22176;Gauss-Kruger_Faja6-PosGAR98;;; +EPSG:22177;Gauss-Kruger_Faja7-PosGAR98;;; +EPSG:3763;Gauss-Kruger_Portugal-ETRS89;;; +PT-TM06/ETRS89;Gauss-Kruger_Portugal-ETRS89;;; +EPSG:20791;Gauss-Kruger_Portugal-Lisboa1937;;; +EPSG:2932;Gauss-Kruger_Qatar-QND;;; +EPSG:3116;Gauss-Kruger_Zona2-MAGNA;;; +SR-ORG:9111;Geostationary-WGS84;;; +Goode_Homolosine;Goode_Homolosine-WGS84;;; +ESRI:102017;LambertAzimEqualA-0-90-WGS84-Ellipsoide;https://epsg.io/102017;https://epsg.io/102017;https://epsg.io/102017 +EPSG:9821;LambertAzimEqualA-0-90-WGS84-Esfera;https://epsg.io/9821-method;https://epsg.io/9821-method;https://epsg.io/9821-method +Lambert_Azimuthal_Equal_Area;LambertAzimEqualA-0-90-WGS84-Esfera;;; +Lambert_Azimuthal_Equal_Area-0-90-WGS84;LambertAzimEqualA-0-90-WGS84-Esfera;;; +EPSG:3035;Lambert_Azimuthal_Equal_Area-1052-ETRS89;;; +urn:ogc:def:crs:EPSG::3035;Lambert_Azimuthal_Equal_Area-1052-ETRS89;;; +ETRS-LAEA;Lambert_Azimuthal_Equal_Area-1052-ETRS89;;; +SR-ORG:7297;Lambert_Azimuthal_Equal_Area-9-48-ETRS89;;; +ETRS-LCC;Lambert_Conformal_Conic-Europa-ETRS89;;; +EPSG:3034;Lambert_Conformal_Conic-Europa-ETRS89;;; +EPSG:2154;Lambert_Conformal_Conic-França-ETRS89;;; +EPSG:2062;Lambert_Conformal_Conic-Madrid1870;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26191;Lambert_Conformal_Conic-Maroc_N-Merchich;;; +EPSG:27561;Lambert_Conformal_Conic-ZoneI-NTF;;; +EPSG:27562;Lambert_Conformal_Conic-ZoneII-NTF;;; +EPSG:27563;Lambert_Conformal_Conic-ZoneIII-NTF;;; +Lambert_Conformal_Conic;Lambert_Conformal_Conic-ZoneIII-NTF;;; +EPSG:27573;Lambert_Conformal_Conic-ZoneIII_ext-NTF;;; +EPSG:27572;Lambert_Conformal_Conic-ZoneII_ext-NTF;;; +AUTO2:LCC,1,14.5,38,35,41;Lambert_Conformal_Conic_ICC_Mediterrani;;; +AUTO2:MERCATOR,1,0,0.0;Mercator-Equator-ED50-UB/ICC;;; +Mercator;Mercator-Equator-ED50-UB/ICC;;; +Mercator-ED50;Mercator-Equator-ED50-UB/ICC;;; +Mercator-ED50-UB/ICC;Mercator-Equator-ED50-UB/ICC;;; +Mercator-Ecuador-ED50-UB/ICC;Mercator-Equator-ED50-UB/ICC;;; +EPSG:3395;Mercator-Equator-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +AUTO2:MERCATOR,1,0,40.60;Mercator-IHM-485-60k-ED50-UB/ICC;;; +AUTO2:MERCATOR,1,0,41.42;Mercator-IHM-489-50k-ED50-UB/ICC;;; +AUTO2:MERCATOR_WGS84,1,0,41.42;Mercator-IHM-489-50k-WGS84;;; +EPSG:3785;Mercator-Popular-Visualisation-Sphere;;; +EPSG:3857;Mercator-Popular-Visualisation-Sphere;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +urn:ogc:def:crs:EPSG::3857;Mercator-Popular-Visualisation-Sphere;;; +EPSG:900913;Mercator-Popular-Visualisation-Sphere;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ESRI:102100;Mercator-Popular-Visualisation-Sphere;;; +EPSG:21782;ObliqueMercator-Rosenmund1903;;; +SR-ORG:6842;Sinusoidal-V5-MODIS;https://spatialreference.org/ref/sr-org/modis-sinusoidal/;https://spatialreference.org/ref/sr-org/modis-sinusoidal/;https://spatialreference.org/ref/sr-org/modis-sinusoidal/ +SR-ORG:6974;Sinusoidal-V5-MODIS;https://spatialreference.org/ref/sr-org/modis-sinusoidal-3/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-3/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-3/ +SR-ORG:6965;Sinusoidal-V5-MODIS;https://spatialreference.org/ref/sr-org/modis-sinusoidal-2/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-2/;https://spatialreference.org/ref/sr-org/modis-sinusoidal-2/ +Sinusoidal;Sinusoidal-WGS84;;; +EPSG:3909;TransverseMercator-BalkansMGI1901;;; +EPSG:2393;TransverseMercator-Finland-KKJ;;; +EPSG:29903;TransverseMercator-Ireland1965;;; +EPSG:2039;TransverseMercator-Israel1989;;; +EPSG:3003;TransverseMercator-Monte_Mario-Italy_Z1;;; +EPSG:3021;TransverseMercator-Sweden-RT90;;; +EPSG:26710;UTM-10N-NAD27-CW;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32610;UTM-10N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32611;UTM-11N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32612;UTM-12N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32613;UTM-13N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32614;UTM-14N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32615;UTM-15N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32616;UTM-16N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32617;UTM-17N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32710;UTM-10S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32711;UTM-11S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32712;UTM-12S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32713;UTM-13S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32714;UTM-14S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32715;UTM-15S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32716;UTM-16S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26901;UTM-1N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26902;UTM-2N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26903;UTM-3N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26904;UTM-4N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26905;UTM-5N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26906;UTM-6N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26906;UTM-7N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26908;UTM-8N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26909;UTM-9N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26910;UTM-10N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26911;UTM-11N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26912;UTM-12N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26913;UTM-13N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26914;UTM-14N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26915;UTM-15N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26916;UTM-16N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26917;UTM-17N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26918;UTM-18N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26919;UTM-19N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26920;UTM-20N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26921;UTM-21N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26922;UTM-22N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26923;UTM-23N-NAD83;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26711;UTM-11N-NAD27-CW;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4486;UTM-13N-ITRF92;;; +EPSG:26713;UTM-13N-NAD27-MX;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4487;UTM-14N-ITRF92;;; +EPSG:26714;UTM-14N-NAD27-MX;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4488;UTM-15N-ITRF92;;; +EPSG:26715;UTM-15N-NAD27-MX;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:26915;UTM-15N-NAD83;;; +EPSG:26716;UTM-16N-NAD27-BC;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:24877;UTM-17S-PSA56-P;;; +EPSG:29187;UTM-17S-SAD69-PE;;; +EPSG:32717;UTM-17S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32618;UTM-18N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29188;UTM-18S-SAD69-CH;;; +EPSG:32718;UTM-18S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29169;UTM-19N-SAD69-BR;;; +EPSG:32619;UTM-19N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:24879;UTM-19S-PSAD56-BC;;; +EPSG:24879-1201;UTM-19S-PSAD56-BC;Transformació per defecte segons https://epsg.io/24879;Transformación por defecto según https://epsg.io/24879;Default transformation according to https://epsg.io/24879 +EPSG:24879-1203;UTM-19S-PSAD56-CN;;; +EPSG:24879-1209;UTM-19S-PSAD56-V;;; +EPSG:29189;UTM-19S-SAD69-CH;;; +EPSG:32719;UTM-19S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29170;UTM-20N-SAD69-BR;;; +EPSG:32620;UTM-20N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:29190;UTM-20S-SAD69-BR;;; +EPSG:32720;UTM-20S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29171;UTM-21N-SAD69-BR;;; +EPSG:32621;UTM-21N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29191;UTM-21S-SAD69-BR;;; +EPSG:32721;UTM-21S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29172;UTM-22N-SAD69-BR;;; +EPSG:32622;UTM-22N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32623;UTM-23N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32624;UTM-24N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32625;UTM-25N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32626;UTM-26N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29192;UTM-27S-SAD69-BR;;; +EPSG:32722;UTM-22S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32723;UTM-23S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32724;UTM-24S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32725;UTM-25S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32726;UTM-26S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32727;UTM-27S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32728;UTM-28S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:32729;UTM-29S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;; +EPSG:29193;UTM-23S-SAD69-BR;;; +EPSG:29194;UTM-24S-SAD69-BR;;; +EPSG:29195;UTM-25S-SAD69-BR;;; +ETRS-TM26;UTM-26N-ETRS89;;; +EPSG:3038;UTM-26N-ETRS89;;; +EPSG:3039;UTM-27N-ETRS89;;; +ETRS-TM27;UTM-27N-ETRS89;;; +EPSG:32627;UTM-27N-WGS84;Ordre d'eixos preferit: est-nord (XY). Sense paràmetres TOWGS84 a https://epsg.io/;Orden de ejes preferido: est-norte (XY). Sin parámetros TOWGS84 en https://epsg.io/;Preferred axis order: east-north (XY). No TOWGS84 parameters at https://epsg.io/ +EPSG:3040;UTM-28N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX). Sin parámetros TOWGS84 en https://epsg.io/;Preferred axis order: north-east (YX). No TOWGS84 parameters at https://epsg.io/ +ETRS-TM28;UTM-28N-ETRS89;;; +EPSG:4083;UTM-28N-REGCAN95;;; +EPSG:32628;UTM-28N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:23029;UTM-29N-S/IGN;;; +EPSG:23029-0000;UTM-29N-ED50-ABDF;;; +EPSG:23029-1145;UTM-29N-ED50-PS;;; +EPSG:25829;UTM-29N-ETRS89;Ordre d'eixos preferit: est-nord (XY);Orden de ejes preferido: est-norte (XY);Preferred axis order: east-north (XY) +EPSG:3041;UTM-29N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX);Preferred axis order: north-east (YX) +urn:ogc:def:crs:EPSG::25829;UTM-29N-ETRS89;;; +ETRS-TM29;UTM-29N-ETRS89;;; +EPSG:23029-1633;UTM-29N-S/IGN;;; +EPSG:32629;UTM-29N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +urn:ogc:def:crs:EPSG::23029;UTM-29N-S/IGN;;; +EPSG:25830;UTM-30N-ETRS89;Ordre d'eixos preferit: est-nord (XY);Orden de ejes preferido: est-norte (XY);Preferred axis order: east-north (XY) +EPSG:3042;UTM-30N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX);Preferred axis order: north-east (YX) +urn:ogc:def:crs:EPSG::25830;UTM-30N-ETRS89;;; +ETRS-TM30;UTM-30N-ETRS89;;; +EPSG:23030;UTM-30N-S/IGN;;; +EPSG:23030-0000;UTM-30N-ABDF;Transformació per defecte segons https://epsg.io/23030-to-4326;Transformación por defecto según https://epsg.io/23030-to-4326;Default transformation according to https://epsg.io/23030-to-4326 +EPSG:23030-15933;UTM-30N-IP;;; +EPSG:23030-1631;UTM-30N-Balearic;;; +EPSG:23030-1635;UTM-30N-NW_IP;;; +EPSG:23030-1145;UTM-30N-PS;;; +EPSG:23030-1633;UTM-30N-S/IGN;;; +urn:ogc:def:crs:EPSG::23030;UTM-30N-S/IGN;;; +UTM-30N;UTM-30N-S/IGN;;; +EPSG:32630;UTM-30N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25831;UTM-31N-ETRS89;Ordre d'eixos preferit: est-nord (XY);Orden de ejes preferido: est-norte (XY);Preferred axis order: east-north (XY) +EPSG:3043;UTM-31N-ETRS89;Ordre d'eixos preferit: nord-est (YX);Orden de ejes preferido: norte-est (YX);Preferred axis order: north-east (YX) +urn:ogc:def:crs:EPSG::25831;UTM-31N-ETRS89;;; +ETRS-TM31;UTM-31N-ETRS89;;; +UTM-31N;UTM-31N-UB/ICC;;; +UTM-31N-ED50;UTM-31N-UB/ICC;;; +EPSG:23031;UTM-31N-UB/ICC;Excepcionalment no es fa correspondre a UTM-31N-ABDF (=https://epsg.io/23031) sinó a UTM-31N-UB/ICC per compatibilitat descendent;Excepcionalmente no se hace corresponder a UTM-31N-ABDF (=https://epsg.io/23031) sino a UTM-31N-UB/ICC por compatibilidad descendente;Exceptionally it does not correspond to UTM-31N-ABDF (=https://epsg.io/23031) but to UTM-31N-UB/ICC for backwards compatibility +EPSG:23031-0000;UTM-31N-ABDF;Transformació per defecte segons https://epsg.io/23031-to-4326;Transformación por defecto según https://epsg.io/23031-to-4326;Default transformation according to https://epsg.io/23031-to-4326 +urn:ogc:def:crs:EPSG::23031;UTM-31N-UB/ICC;;; +EPSG:32631;UTM-31N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25832;UTM-32N-ETRS89;;; +ETRS-TM32;UTM-32N-ETRS89;;; +EPSG:32632;UTM-32N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25833;UTM-33N-ETRS89;;; +ETRS-TM33;UTM-33N-ETRS89;;; +EPSG:32633;UTM-33N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:22033;UTM-33S-Camacupa1980;;; +EPSG:32730;UTM-30S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32731;UTM-31S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32732;UTM-32S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32733;UTM-33S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32734;UTM-34S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32735;UTM-35S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25834;UTM-34N-ETRS89;;; +ETRS-TM34;UTM-34N-ETRS89;;; +EPSG:2100;UTM-34N-GGRS87;;; +EPSG:32634;UTM-34N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:25835;UTM-35N-ETRS89;;; +ETRS-TM35;UTM-35N-ETRS89;;; +EPSG:32635;UTM-35N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ETRS-TM36;UTM-36N-ETRS89;;; +EPSG:25836;UTM-36N-ETRS89;;; +EPSG:32636;UTM-36N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:2736;UTM-36S-Tete-MZ;;; +EPSG:32736;UTM-36S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32737;UTM-37S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32738;UTM-38S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32739;UTM-39S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32740;UTM-40S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32741;UTM-41S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32742;UTM-42S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32743;UTM-43S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32744;UTM-44S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32745;UTM-45S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32746;UTM-46S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32747;UTM-47S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32748;UTM-48S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32749;UTM-49S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32750;UTM-50S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32751;UTM-51S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32752;UTM-52S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32753;UTM-53S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32754;UTM-54S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32755;UTM-55S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32756;UTM-56S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32757;UTM-57S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32758;UTM-58S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32759;UTM-59S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32760;UTM-60S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ETRS-TM37;UTM-37N-ETRS89;;; +EPSG:25837;UTM-37N-ETRS89;;; +EPSG:32637;UTM-37N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32638;UTM-38N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32639;UTM-39N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +ETRS-TM38;UTM-38N-ETRS89;;; +EPSG:25838;UTM-38N-ETRS89;;; +ETRS-TM39;UTM-39N-ETRS89;;; +EPSG:32640;UTM-40N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32641;UTM-41N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32642;UTM-42N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32643;UTM-43N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32644;UTM-44N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32645;UTM-45N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32646;UTM-46N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32647;UTM-47N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32648;UTM-48N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32649;UTM-49N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32650;UTM-50N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32651;UTM-51N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32652;UTM-52N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32653;UTM-53N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32654;UTM-54N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32655;UTM-55N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32656;UTM-56N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32657;UTM-57N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32658;UTM-58N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32659;UTM-59N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32660;UTM-60N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32759;UTM-59S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32601;UTM-1N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32602;UTM-2N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32603;UTM-3N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32604;UTM-4N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32605;UTM-5N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32606;UTM-6N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32607;UTM-7N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32608;UTM-8N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32609;UTM-9N-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32701;UTM-1S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32702;UTM-2S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32703;UTM-3S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32704;UTM-4S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32705;UTM-5S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32706;UTM-6S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32707;UTM-7S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32708;UTM-8S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:32709;UTM-9S-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4218;lat/long-Bogota;;; +EPSG:4149;lat/long-CH1903;;; +EPSG:4230-1145;lat/long-ED50-PS;;; +EPSG:4230-1633;lat/long-ED50-S/IGN;;; +EPSG:4230-0000;lat/long-ED50-ABDF;Transformació per defecte segons https://epsg.io/4230-to-4326;Transformación por defecto según https://epsg.io/4230-to-4326;Default transformation according to https://epsg.io/4230-to-4326 +EPSG:4230;lat/long-ED50-UB/ICC;;; +lat/long-ED50;lat/long-ED50-UB/ICC;;; +EPSG:4258;lat/long-ETRS89;;; +EPSG:4686;lat/long-MAGNA;;; +EPSG:4903;lat/long-Madrid1870;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4261;lat/long-Merchich;;; +EPSG:4267;lat/long-NAD27-BC;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +EPSG:4269;lat/long-NAD83-AA;;; +EPSG:4275;lat/long-NTF;;; +EPSG:4190;lat/long-PosGAR98;;; +EPSG:4081;lat/long-REGCAN95;;; +EPSG:5527;lat/long-SAD69-CH;;; +EPSG:4124;lat/long-Sweden-RT90;;; +EPSG:4127;lat/long-Tete-MZ;;; +EPSG:4326;lat/long-WGS84;Sense paràmetres TOWGS84 a https://epsg.io/;Sin parámetros TOWGS84 en https://epsg.io/;No TOWGS84 parameters at https://epsg.io/ +urn:ogc:def:crs:EPSG::4326;lat/long-WGS84;;; +CRS:84;lat/long-WGS84;;; +Equirectangular;lat/long-WGS84;;; +lat/long;lat/long-WGS84;;; +urn:ogc:def:crs:OGC:1.3:CRS84;lat/long-WGS84;;; +EPSG:9377;Transverse-Mercator_Colombia_ONacional;;; +MAGNA-SIRGAS / Origen-Nacional;Transverse-Mercator_Colombia_ONacional;https://origen.igac.gov.co/herramientas.html;https://origen.igac.gov.co/herramientas.html;https://origen.igac.gov.co/herramientas.html diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt new file mode 100644 index 00000000..f29a5ca5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/cubewerx_extra.wkt @@ -0,0 +1,48 @@ +# +# This file derived from the public_coordsys.txt file distributed with +# CubeSTOR by CubeWerx (http://www.cubewerx.com) +# +# OGC-defined "AUTO" codes +# http://www.digitalearth.gov/wmt/auto.html +# +# Hmm, not really much point to including these as they require extra +# substitutions. See the importFromWMSAUTO() if you need these. +# +#42001,PROJCS["WGS 84 / Auto UTM%s",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["central_meridian","%.16g"],PARAMETER["latitude_of_origin",0],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42001"]] +#42002,PROJCS["WGS 84 / Auto Tr. Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["central_meridian","%.16g"],PARAMETER["latitude_of_origin",0],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42002"]] +#42003,PROJCS["WGS 84 / Auto Orthographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Orthographic"],PARAMETER["central_meridian","%.16g"],PARAMETER["latitude_of_origin","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42003"]] +#42004,PROJCS["WGS 84 / Auto Equirectangular",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["central_meridian",0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1","%.16g"],UNIT["Meter",1],AUTHORITY["EPSG","42004"]] +# +# OGC-defined extended codes (41000--41999) +# see http://www.digitalearth.gov/wmt/auto.html +# +41001,PROJCS["WGS84 / Simple Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","41001"]] +# +# CubeWerx-defined extended codes (42100--42199) +# +42101,PROJCS["WGS 84 / LCC Canada",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-95.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",49.0],PARAMETER["standard_parallel_2",77.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",-8000000.0],UNIT["Meter",1],AUTHORITY["EPSG","42101"]] +#EPSG:42102,"PROJCS[\"NAD83 / BC Albers\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS_1980\",6378137,298.257222101]],PRIMEM[\"Greenwich\",0],UNIT[\"Decimal_Degree\",0.0174532925199433]],PROJECTION[\"Albers_conic_equal_area\"],PARAMETER[\"central_meridian\",-126.0],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"standard_parallel_1\",50.0],PARAMETER[\"standard_parallel_2\",58.5],PARAMETER[\"false_easting\",1000000.0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]" +42103,PROJCS["WGS 84 / LCC USA",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1978",6378135,298.26]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-100.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",33.0],PARAMETER["standard_parallel_2",45.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42103"]] +42104,PROJCS["NAD83 / MTM zone 8 Quebec",GEOGCS["GRS80",DATUM["GRS_1980",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42104"]] +42105,PROJCS["WGS84 / Merc NorthAm",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42105"]] +42106,PROJCS["WGS84 / Lambert Azim Mozambique",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["Sphere_radius_6370997_m",6370997,0]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_equal_area"],PARAMETER["latitude_of_origin",5],PARAMETER["central_meridian",20],PARAMETER["standard_parallel_1",5],PARAMETER["standard_parallel_2",5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42106"]] +# +# CubeWerx-customer definitions (42300--42399) +# +42301,PROJCS["NAD27 / Polar Stereographic / CM=-98",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.978698213901]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",-98.0],PARAMETER["standard_parallel_1",90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42301"]] +42302,PROJCS["JapanOrtho.09 09",GEOGCS["Lon/Lat.Tokyo Datum",DATUM["Tokyo Datum",SPHEROID["anon",6377397.155,299.15281310608]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["Central_Meridian",139.833333333333],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Latitude_of_Origin",36],PARAMETER["Scale_Factor",0.9999],UNIT["Meter",1],AUTHORITY["EPSG","42302"]] +42303,PROJCS["NAD83 / Albers NorthAm",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Albers_conic_equal_area"],PARAMETER["central_meridian",-96.0],PARAMETER["latitude_of_origin",23],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42303"]] +42304,PROJCS["NAD83 / NRCan LCC Canada",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-95.0],PARAMETER["latitude_of_origin",49.0],PARAMETER["standard_parallel_1",49.0],PARAMETER["standard_parallel_2",77.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42304"]] +42305,PROJCS["France_II",GEOGCS["GCS_NTF_Paris",DATUM["Nouvelle_Triangulation_Francaise",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Paris",2.337229166666667],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",2200000],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",45.898918964419],PARAMETER["Standard_Parallel_2",47.696014502038],PARAMETER["Latitude_Of_Origin",46.8],UNIT["Meter",1],AUTHORITY["EPSG","42305"]] +42306,PROJCS["NAD83/QC_LCC",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-68.5],PARAMETER["latitude_of_origin",44],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",60],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42306"]] +42307,PROJCS["NAD83 / Texas Central - feet",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.8833333333333],PARAMETER["standard_parallel_2",30.1166666666667],PARAMETER["latitude_of_origin",29.6666666666667],PARAMETER["central_meridian",-100.333333333333],PARAMETER["false_easting",2296583.33333333333333],PARAMETER["false_northing",9842500],UNIT["US_Foot",0.30480060960121924],AUTHORITY["EPSG","42307"]] +42308,PROJCS["NAD27 / California Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.978698213901]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Albers_conic_equal_area"],PARAMETER["central_meridian",-120.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],UNIT["Meter",1],AUTHORITY["EPSG","42308"]] +42309,PROJCS["NAD 83 / LCC Canada AVHRR-2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-95.0],PARAMETER["latitude_of_origin",0],PARAMETER["standard_parallel_1",49.0],PARAMETER["standard_parallel_2",77.0],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["Meter",1],AUTHORITY["EPSG","42309"]] +42310,PROJCS["WGS84+GRS80 / Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","42310"]] +42311,PROJCS["NAD83 / LCC Statcan",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["central_meridian",-91.866667],PARAMETER["latitude_of_origin",63.390675],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["false_easting",6200000],PARAMETER["false_northing",3000000],UNIT["Meter",1],AUTHORITY["EPSG","42311"]] +# +# BC-Forestry/NFIS code +# +100001,GEOGCS["NAD83 / NFIS Seconds",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Decimal_Second",4.84813681109536e-06],AUTHORITY["EPSG","100001"]] +100002,PROJCS["NAD83 / Austin",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.8833333333333],PARAMETER["standard_parallel_2",30.1166666666667],PARAMETER["latitude_of_origin",29.6666666666667],PARAMETER["central_meridian",-100.333333333333],PARAMETER["false_easting",2296583.333333],PARAMETER["false_northing",9842500.0000000],UNIT["Meter",1],AUTHORITY["EPSG","100002"]] +900913,PROJCS["Google Maps Global Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"]] diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/default.rsc b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/default.rsc new file mode 100644 index 0000000000000000000000000000000000000000..2fb03e826bdcb0aa99b045a168ee0dfc39196195 GIT binary patch literal 463632 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

EI6gJ?$aOWmgB%F9U6VX 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∾Tp30SwO5J>Q%3X5^!E@D2?V|O72cyPCTcc!JO1(QasP(JRXs5X z!aJRYG#pbi9`c7Nb%ZG+>GfP8DfR_AyU(BvH_+FA6H(M4NxdkQk>dhrHAXxGUrF~> zk!1@{I>Ma#jw=n4c1>%TU(3Q>t%X&HjCG7q-oMj z0z*x7>cvBR{NXkLine{kX}=F$un#^v%E^-_`El_Enx=k-aCP!n09~TZW-}f=dbDQc z%9V2~D=W#!$iUAqqoIx>gb_x91!(n5WGJ#KdwHBCi0x{i+p&?35AuFa*Tr4cHXie0;QT`w&yeSZ7) z?LQOXGd01c;hjqgf5paMzKO@<;mD2;(BUUR7@)qs9<$jDz%6?n1O3g&vh*_*_gwtM)-|xp{GLfF1j@@o2Gdc&2DrrmvQ3xZ$ux^M) z{t~DXV`F3c0Nidj>FMb`%a(mTnW+d4jt+3|+9d!|Qc@U1L34d*My;u-p|7tGhr@xw zd528nPaYN*Rb-|XqERIRNC-kLT3mAy|wLIMSAi--sg(9qC8c6K&z@2OyO$yNZa+b^OT zRfM1J{yV|_-6;Qg5WO%62*qW2(H{-_m1eWK>iqfhudCJSoed2Q%8rf>7A;ytN=ix( zAm`-d;PraBd-pEOmoJxJw){L;7im(=XgiC^WMaXB1zZj4$)5f!vu4dgk|dM^jTnta zX3d&~*XyOdy&Z$WfQkO%xAPM3n{G$G)@HLs0N(-46+V-BAGkwI`4@ z1?0_%4E#tGLa%ANtR)gZkwR!tx!ks&q{u8{qh + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd new file mode 100644 index 00000000..80b6f999 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gdalvrt.xsd @@ -0,0 +1,887 @@ + + + + + + Root element + + + + + + + + + + + + + + May be repeated + + + + + May be repeated + + + + + + Allowed only if subClass="VRTWarpedDataset" + + + + + Allowed only if subClass="VRTPansharpenedDataset" + + + + + Allowed only if subClass="VRTProcessedDataset" + + + + + Allowed only if subClass="VRTProcessedDataset" + + + + + only for multidimensional dataset + + + + + + + + + + + + + + + + + Added in GDAL 3.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Processing step of a VRTPansharpenedDataset + + + + + Builtin allowed names are BandAffineCombination, LUT, LocalScaleOffset, Trimming. More algorithms can be registered at run-time. + + + + + + + + + + Argument of a processing function + + + + + + Allowed names are specific of each processing function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gfs.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gfs.xsd new file mode 100644 index 00000000..936343b3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gfs.xsd @@ -0,0 +1,246 @@ + + + + + + + + + Set this element to true if all features belonging to the same layer are written sequentially in the file. The reader will then avoid unnecessary resets when layers are read completely one after the other. To get the best performance, the layers must be read in the order they appear in the file. Cf https://gdal.org/drivers/vector/gml.html#performance-issues-with-large-multi-layer-gml-files + + + + + + + + Name of the feature type; essentially used as layer name. Can be different than the name of the XML element that represents such a feature in XML data. Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation). + Different GMLFeatureClass elements should have a different name. + + + + + + Defines the path in a given XML document to the elements that represent the GML feature. Can use '|' as element separator. Namespace prefixes of path elements are insignificant. + As multiple ElementPath-elements are not allowed per GMLFeatureClass, if a feature type was encoded in different places in an XML document (e.g. on collection member level, as well as inline in some other feature), the gfs file would have to contain multiple GMLFeatureClass entries, with different ElementPaths. + + + + + Defines a geometry column. This element may be repeated if there are several geometry columns. For backward compatibility with older GDAL versions, the GDAL .gfs writer will only write this element if there are several geometry columns, but it is allowed to use it if there is just a single geometry column. GeomPropertyDefn is mutually exclusive with GeometryName, GeometryElementPath and GeometryType + + + + + Name of a geometric property of the feature. Can be different than the name of the XML element that represents that property. Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation, or a combination of names in the element path). Mutually exclusive with GeomPropertyDefn + + + + + Defines the path to the XML element that represents the geometry property within the XML element of the GML feature. Can use '|' as element separator. Namespace prefixes of path elements are insignificant. NOTE: The path should not include the actual GML geometry element itself. Used in combination with the GeometryName. Mutually exclusive with GeomPropertyDef. + + + + + Used in combination with the GeometryName. Mutually exclusive with GeomPropertyDef. + + + + + Defines the SRS of all geometry columns of the layer. Typically a string of the form urn:ogc:def:crs:EPSG::XXXX + + + + + Contains optional information about the feature count of the layer and its extent. This should not be used in .gfs templates, but for specific instantiation of a .gfs on a given .gml file + + + + + + Number of features in the layer + + + + + Minimum X value of the layer extent. + + + + + Maximum X value of the layer extent. + + + + + Minimum Y value of the layer extent. + + + + + Maximum X value of the layer extent. + + + + + + + + + + + + + + + The names of all GMLFeatureClasses within the GMLFeatureClassList must be unique. + + + + + + + + Geometry type, expressed either as a numeric value matching the OGRwkbGeometryType enumeration or a string ([Multi]?Point|[Multi]?LineString|[Multi]?Polygon|GeometryCollection|CircularString|CurvePolygon|[Multi]Curve|[Multi]Surface|Triangle|PolyhedralSurface|TIN)Z?M? or None to indicate a layer without geometry field. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of a geometric property of the feature. Can be different than the name of the XML element that represents that property. Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation, or a combination of names in the element path). + + + + + Defines the path to the XML element that represents the geometry property within the XML element of the GML feature. Can use '|' as element separator. Namespace prefixes of path elements are insignificant. NOTE: The path should not include the actual GML geometry element itself. + + + + + + + + + + Can be set to false to indicate that null/missing geometries are forbidden. + + + + + + + + + + + Name of a non-geometric property of the feature. Can be different than the name of the XML element that represents that property. + +NOTE: Properties with name suffix "_href" - typically used when the ElementPath ends in @xlink:href - can be used to build junction tables. For further details, see https://gdal.org/drivers/vector/gml.html#building-junction-tables. + +Examples: case can change, a prefix can be added to the name, and the name can be more human readable (e.g. the full name, rather than an abbreviation, or a combination of names in the element path). + + + + + Defines the path to the XML element that represents the property within the XML element of the GML feature. Can use '|' as element separator. The last path segment may have an XML attribute name as suffix, using '@' as separator (e.g., width@uom). Namespace prefixes of path elements are insignificant. + + + + + Field type. Complex may be used to indicate that the value of the element is not a simple type. + + + + + + + + + + + + + + + + + + + Can be set to false to indicate that null/missing values are forbidden. + + + + + Further specializes the property type. Allowed combinations are: (Type: Integer, Subtype: Short, Integer64), (Type: IntegerList, Subtype: Integer64), (Type: Real, Subtype: Float), (Type: String, Subtype: Boolean, Date, Time, Datetime), (Type: StringList, Subtype: Boolean) + + + + + + + + + + + + + + + + Can be used to create multiple properties from the same XML element, based upon a set of mutually exclusive conditions. For further details, and examples, see https://gdal.org/drivers/vector/gml.html#using-conditions-on-xml-attributes + + + + + When set to true, indicates that values of that field are unique through all the features of the layer + + + + + Maximum width of the string representation of the values of the field. Supported use cases: (Type: String, Subtype is NOT Boolean, Date, Time, or Datetime), (Type: Integer), (Type: Real) + + + + + Only applies to Real. Maximum decimal precision (i.e. number of digits after the decimal point) of the values of the field. + + + + + Description of the field (added in GDAL 3.7) + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xml new file mode 100644 index 00000000..831a32d3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd new file mode 100644 index 00000000..717f674d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gml_registry.xsd @@ -0,0 +1,66 @@ + + + + + + The registry contains namespace definitions, which are used to find a single .gfs or XML schema file with which the GML driver shall process the whole GML data file. The GML driver uses the schema file defined for the first matching (prefix-)namespace-featureType combination that is found in the GML data. NOTE: The order of the namespaces within the GML registry file is important when loading a GML file that contains features from multiple namespaces. Only the feature types defined in the selected schema will be recognized. In other words, if the GML file contains features from multiple namespaces, then only the ones that match the definitions from the chosen schema will be read. + + + + + + Defines a namespace, together with the feature types that belong to it. + +NOTE: Multiple feature types within the namespace may refer to the same schema (which should then include definitions for these feature types). + + + + + + Definition of a feature type, with XML attributes to match given GML data and to define a .gfs or XML schema that contains the definition of the feature type. NOTE: The schema may contain definitions for multiple feature types. + + + + + Name of the XML element that is used to identify the feature type. Typically the local name of an XML element that encodes a feature. However, it can also be the local name of a different element that can be used in combination with @elementValue to produce a match for this feature type definition within the namespace. + + + + + Used in combination with @elementName. If present, a match for this feature type element is only produced if an XML element whose local-name (and prefix, if defined in the namespace) equals the value of @elementName and whose value equals the value of @elementValue is found in the GML data. For example: If namespace/@prefix = 'ex', featureType/@elementName = 'typeOfFeature', and featureType/@elementValue = 'FT', then a match is produced if <ex:typeOfFeature>FT</ex:typeOfFeature> is present in the GML data. + + + + + OGR .gfs file in which the feature type is defined (possibly together with other feature types). The GML driver will parse the layer definitions from that file. The schema location can be given as URL (http and https), absolute file path, and relative file path (relative to the location of the registry file). + + + + + XML schema file in which the feature type is defined (possibly together with other feature types). The GML driver will attempt to parse it and create layer definitions. The schema location can be given as URL (http and https), absolute file path, and relative file path (relative to the location of the registry file). + + + + + + + + Namespace prefix assigned to the features of this namespace in actual GML data. The prefix will be looked up in the first bytes of the GML file (e.g. xmlns:abc="http://example.org/abc"). It is used to confirm the match of the namespace uri (defined by @uri). NOTE-1: Case is important - the parser looks for the exact string, i.e., 'ex' is treated differently than 'EX'. If actual data may use different prefixes for the same namespace URI, multiple namespace elements must be added to the gml_registry - one for each applicable prefix. NOTE-2: The prefix can be omitted in the namespace definition. In that case, a match is only produced if a) the namespace uri is found in any namespace declaration in the GML file (typically as default namespace in the root element, e.g., xmlns="http://example.org/abc") and b) an XML element without XML namespace prefix, and local-name being equal to the @elementName of the feature type (plus a possibly defined @elementValue as textual value), is found. + + + + + Namespace URI as found in the first bytes of the GML file. (e.g. "http://example.org/abc" in the namespace declaration for xmlns:abc="http://example.org/abc"). + + + + + When set to true, it means that the SRS defined by a srsName attribute found in the global gml:Envelope element applies to all features of the GML file. + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_center.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_center.csv new file mode 100644 index 00000000..be37edd4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_center.csv @@ -0,0 +1,251 @@ +code,name +0,"WMO Secretariat" +1,"Melbourne" +2,"Melbourne" +3,"Melbourne" +4,"Moscow" +5,"Moscow" +6,"Moscow" +7,"US-NCEP" +8,"US-NWSTG" +9,"US-Other" +10,"Cairo" +11,"Cairo" +12,"Dakar" +13,"Dakar" +14,"Nairobi" +15,"Nairobi" +16,"Casablanca" +17,"Tunis" +18,"Tunis Casablanca" +19,"Tunis Casablanca" +20,"Las Palmas" +21,"Algiers" +22,"ACMAD" +23,"Mozambique" +24,"Pretoria" +25,"La Réunion" +26,"Khabarovsk" +27,"Khabarovsk" +28,"New Delhi" +29,"New Delhi" +30,"Novosibirsk" +31,"Novosibirsk" +32,"Tashkent" +33,"Jeddah" +34,"Tokyo" +35,"Tokyo" +36,"Bangkok" +37,"Ulan Bator" +38,"Beijing" +39,"Beijing" +40,"Seoul" +41,"Buenos Aires" +42,"Buenos Aires" +43,"Brasilia" +44,"Brasilia" +45,"Santiago" +46,"Brazilian Space Agency" +47,"Colombia" +48,"Ecuador" +49,"Peru" +50,"Venezuela" +51,"Miami" +52,"Miami-NHC" +53,"Montreal" +54,"Montreal" +55,"San Francisco" +56,"ARINC Centre" +57,"US-Air Force Weather" +58,"US-Fleet Meteorology and Oceanography" +59,"US-FSL" +60,"US-NCAR" +61,"US-Service ARGOS" +62,"US-Naval Oceanographic Office" +64,"Honolulu" +65,"Darwin" +66,"Darwin" +67,"Melbourne" +69,"Wellington" +70,"Wellington" +71,"Nadi" +72,"Singapore" +73,"Malaysia" +74,"UK-Met-Exeter" +75,"UK-Met-Exeter" +76,"Moscow" +78,"Offenbach" +79,"Offenbach" +80,"Rome" +81,"Rome" +82,"Norrköping" +83,"Norrköping" +84,"Toulouse" +85,"Toulouse" +86,"Helsinki" +87,"Belgrade" +88,"Oslo" +89,"Prague" +90,"Episkopi" +91,"Ankara" +92,"Frankfurt/Main" +93,"London" +94,"Copenhagen" +95,"Rota" +96,"Athens" +97,"ESA-European Space Agency" +98,"ECMWF" +99,"DeBilt" +100,"Brazzaville" +101,"Abidjan" +102,"Libyan Arab Jamahiriya" +103,"Madagascar" +104,"Mauritius" +105,"Niger" +106,"Seychelles" +107,"Uganda" +108,"Tanzania" +109,"Zimbabwe" +110,"Hong-Kong, China" +111,"Afghanistan" +112,"Bahrain" +113,"Bangladesh" +114,"Bhutan" +115,"Cambodia" +116,"Democratic People's Republic of Korea" +117,"Islamic Republic of Iran" +118,"Iraq" +119,"Kazakhstan" +120,"Kuwait" +121,"Kyrgyz Republic" +122,"Lao People's Democratic Republic" +123,"Macao, China" +124,"Maldives" +125,"Myanmar" +126,"Nepal" +127,"Oman" +128,"Pakistan" +129,"Qatar" +130,"Republic of Yemen" +131,"Sri Lanka" +132,"Tajikistan" +133,"Turkmenistan" +134,"United Arab Emirates" +135,"Uzbekistan" +136,"Socialist Republic of Viet Nam" +140,"Bolivia" +141,"Guyana" +142,"Paraguay" +143,"Suriname" +144,"Uruguay" +145,"French Guyana" +146,"Brazilian Navy Hydrographic Centre" +150,"Antigua and Barbuda" +151,"Bahamas" +152,"Barbados" +153,"Belize" +154,"British Caribbean Territories" +155,"San Jose" +156,"Cuba" +157,"Dominica" +158,"Dominican Republic" +159,"El Salvador" +160,"US-NESDIS" +161,"US-OAR" +162,"Guatemala" +163,"Haiti" +164,"Honduras" +165,"Jamaica" +166,"Mexico" +167,"Netherlands Antilles and Aruba" +168,"Nicaragua" +169,"Panama" +170,"Saint Lucia NMC" +171,"Trinidad and Tobago" +172,"French Departments" +190,"Cook Islands" +191,"French Polynesia" +192,"Tonga" +193,"Vanuatu" +194,"Brunei" +195,"Indonesia" +196,"Kiribati" +197,"Federated States of Micronesia" +198,"New Caledonia" +199,"Niue" +200,"Papua New Guinea" +201,"Philippines" +202,"Samoa" +203,"Solomon Islands" +210,"Frascati (ESA/ESRIN)" +211,"Lanion" +212,"Lisboa" +213,"Reykiavik" +214,"Madrid" +215,"Zürich" +216,"Service ARGOS Toulouse" +217,"Bratislava" +218,"Budapest" +219,"Ljubljana" +220,"Warsaw" +221,"Zagreb" +222,"Albania" +223,"Armenia" +224,"Austria" +225,"Azerbaijan" +226,"Belarus" +227,"Belgium" +228,"Bosnia and Herzegovina" +229,"Bulgaria" +230,"Cyprus" +231,"Estonia" +232,"Georgia" +233,"Dublin" +234,"Israel" +235,"Jordan" +236,"Latvia" +237,"Lebanon" +238,"Lithuania" +239,"Luxembourg" +240,"Malta" +241,"Monaco" +242,"Romania" +243,"Syrian Arab Republic" +244,"The former Yugoslav Republic of Macedonia" +245,"Ukraine" +246,"Republic of Moldova" +254,"EUMETSAT Operation Centre" +256,"Angola" +257,"Benin" +258,"Botswana" +259,"Burkina Faso" +260,"Burundi" +261,"Cameroon" +262,"Cape Verde" +263,"Central African republic" +264,"Chad" +265,"Comoros" +266,"Democratic Republic of the Congo" +267,"Djibouti" +268,"Eritrea" +269,"Ethiopia" +270,"Gabon" +271,"Gambia" +272,"Ghana" +273,"Guinea" +274,"Guinea Bissau" +275,"Lesotho" +276,"Liberia" +277,"Malawi" +278,"Mali" +279,"Mauritania" +280,"Namibia" +281,"Nigeria" +282,"Rwanda" +283,"Sao Tome and Principe" +284,"Sierra Leone" +285,"Somalia" +286,"Sudan" +287,"Swaziland" +288,"Togo" +289,"Zambia" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_process.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_process.csv new file mode 100644 index 00000000..6d1aed1d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_process.csv @@ -0,0 +1,102 @@ +center_code,process_code,name +7,2,"Ultra Violet Index Model" +7,3,"NCEP/ARL Transport and Dispersion Model" +7,4,"NCEP/ARL Smoke Model" +7,5,"Satellite Derived Precipitation and temperatures, from IR" +7,6,"NCEP/ARL Dust Model" +7,10,"Global Wind-Wave Forecast Model" +7,11,"Global Multi-Grid Wave Model (Static Grids)" +7,12,"Probabilistic Storm Surge" +7,19,"Limited-area Fine Mesh (LFM) analysis" +7,25,"Snow Cover Analysis" +7,30,"Forecaster generated field" +7,31,"Value added post processed field" +7,39,"Nested Grid forecast Model (NGM)" +7,42,"Global Optimum Interpolation Analysis (GOI) from GFS model" +7,43,"Global Optimum Interpolation Analysis (GOI) from 'Final' run" +7,44,"Sea Surface Temperature Analysis" +7,45,"Coastal Ocean Circulation Model" +7,46,"HYCOM - Global" +7,47,"HYCOM - North Pacific basin" +7,48,"HYCOM - North Atlantic basin" +7,49,"Ozone Analysis from TIROS Observations" +7,52,"Ozone Analysis from Nimbus 7 Observations" +7,53,"LFM-Fourth Order Forecast Model" +7,64,"Regional Optimum Interpolation Analysis (ROI)" +7,68,"80 wave triangular, 18-layer Spectral model from GFS model" +7,69,"80 wave triangular, 18 layer Spectral model from 'Medium Range Forecast' run" +7,70,"Quasi-Lagrangian Hurricane Model (QLM)" +7,73,"Fog Forecast model - Ocean Prod. Center" +7,74,"Gulf of Mexico Wind/Wave" +7,75,"Gulf of Alaska Wind/Wave" +7,76,"Bias corrected Medium Range Forecast" +7,77,"126 wave triangular, 28 layer Spectral model from GFS model" +7,78,"126 wave triangular, 28 layer Spectral model from 'Medium Range Forecast' run" +7,79,"Backup from the previous run" +7,80,"62 wave triangular, 28 layer Spectral model from 'Medium Range Forecast' run" +7,81,"Analysis from GFS (Global Forecast System)" +7,82,"Analysis from GDAS (Global Data Assimilation System)" +7,84,"MESO ETA Model (currently 12 km)" +7,86,"RUC Model from FSL (isentropic; scale: 60km at 40N)" +7,87,"CAC Ensemble Forecasts from Spectral (ENSMB)" +7,88,"NOAA Wave Watch III (NWW3) Ocean Wave Model" +7,89,"Non-hydrostatic Meso Model (NMM) Currently 8 km)" +7,90,"62 wave triangular, 28 layer spectral model extension of the 'Medium Range Forecast' run" +7,91,"62 wave triangular, 28 layer spectral model extension of the GFS model" +7,92,"62 wave triangular, 28 layer spectral model run from the 'Medium Range Forecast' final analysis" +7,93,"62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the 'Medium Range Forecast' run" +7,94,"T170/L42 Global Spectral Model from MRF run" +7,95,"T126/L42 Global Spectral Model from MRF run" +7,96,"Global Forecast System Model" +7,98,"Climate Forecast System Model" +7,100,"RUC Surface Analysis (scale: 60km at 40N)" +7,101,"RUC Surface Analysis (scale: 40km at 40N)" +7,105,"RUC Model from FSL (isentropic; scale: 20km at 40N)" +7,107,"Global Ensemble Forecast System (GEFS)" +7,108,"LAMP" +7,109,"RTMA (Real Time Mesoscale Analysis)" +7,110,"NAM Model - 15km version" +7,111,"NAM model, generic resolution" +7,112,"WRF-NMM (Nondydrostatic Mesoscale Model) model, generic resolution" +7,113,"Products from NCEP SREF processing" +7,114,"NAEFS Products from joined NCEP, CMC global ensembles" +7,115,"Downscaled GFS from NAM eXtension" +7,116,"WRF-EM (Eulerian Mass-core) model, generic resolution " +7,120,"Ice Concentration Analysis" +7,121,"Western North Atlantic Regional Wave Model" +7,122,"Alaska Waters Regional Wave Model" +7,123,"North Atlantic Hurricane Wave Model" +7,124,"Eastern North Pacific Regional Wave Model" +7,125,"North Pacific Hurricane Wave Model" +7,126,"Sea Ice Forecast Model" +7,127,"Lake Ice Forecast Model" +7,128,"Global Ocean Forecast Model" +7,129,"Global Ocean Data Analysis System (GODAS)" +7,130,"Merge of fields from the RUC, NAM, and Spectral Model" +7,131,"Great Lakes Wave Model" +7,140,"North American Regional Reanalysis (NARR)" +7,141,"Land Data Assimilation and Forecast System" +7,150,"NWS River Forecast System (NWSRFS)" +7,151,"NWS Flash Flood Guidance System (NWSFFGS)" +7,152,"WSR-88D Stage II Precipitation Analysis" +7,153,"WSR-88D Stage III Precipitation Analysis" +7,180,"Quantitative Precipitation Forecast" +7,181,"River Forecast Center Quantitative Precipitation Forecast mosaic" +7,182,"River Forecast Center Quantitative Precipitation estimate mosaic" +7,183,"NDFD product generated by NCEP/HPC" +7,184,"Climatological Calibrated Precipiation Analysis - CCPA" +7,190,"National Convective Weather Diagnostic" +7,191,"Current Icing Potential automated product" +7,192,"Analysis product from NCEP/AWC" +7,193,"Forecast product from NCEP/AWC" +7,195,"Climate Data Assimilation System 2 (CDAS2)" +7,196,"Climate Data Assimilation System 2 (CDAS2)" +7,197,"Climate Data Assimilation System (CDAS)" +7,198,"Climate Data Assimilation System (CDAS)" +7,199,"Climate Forecast System Reanalysis (CFSR)" +7,200,"CPC Manual Forecast Product" +7,201,"CPC Automated Product" +7,210,"EPA Air Quality Forecast" +7,211,"EPA Air Quality Forecast" +7,215,"SPC Manual Forecast Product" +7,220,"NCEP/OPC automated product" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv new file mode 100644 index 00000000..af8cf6f8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_subcenter.csv @@ -0,0 +1,63 @@ +center_code,subcenter_code,name +7,1,"NCEP Re-Analysis Project" +7,2,"NCEP Ensemble Products" +7,3,"NCEP Central Operations" +7,4,"Environmental Modeling Center" +7,5,"Hydrometeorological Prediction Center" +7,6,"Ocean Prediction Center" +7,7,"Climate Prediction Center" +7,8,"Aviation Weather Center" +7,9,"Storm Prediction Center" +7,10,"Tropical Prediction Center" +7,11,"Techniques Development Laboratory" +7,12,"NESDIS Office of Research and Applications" +7,13,"FAA" +7,14,"Meteorological Development Laboratory (MDL)" +7,15,"North American Regional Reanalysis (NARR) Project" +7,16,"Space Environment Center" +8,0,"National Digital Forecast Database" +161,1,"Great Lakes Environmental Research Laboratory" +161,2,"Forecast Systems Laboratory" +74,1,"Shanwick Oceanic Area Control Centre" +74,2,"Fucino" +74,3,"Gatineau" +74,4,"Maspalomas" +74,5,"ESA ERS Central Facility" +74,6,"Prince Albert" +74,7,"West Freugh" +74,13,"Tromso" +74,21,"Agenzia Spaziale Italiana (Italy)" +74,22,"Centre National de la Recherche Scientifique (France)" +74,23,"GeoForschungsZentrum (Germany)" +74,24,"Geodetic Observatory Pecny (Czech Republic)" +74,25,"Institut d'Estudis Espacials de Catalunya (Spain)" +74,26,"Swiss Federal Office of Topography" +74,27,"Nordic Commission of Geodesy (Norway)" +74,28,"Nordic Commission of Geodesy (Sweden)" +74,29,"Institute de Geodesie National (France)" +74,30,"Bundesamt für Kartographie und Geodäsie (Germany)" +74,31,"Institute of Engineering Satellite Surveying and Geodesy (U.K.)" +254,10,"Tromso (Norway)" +254,10,"Maspalomas (Spain)" +254,30,"Kangerlussuaq (Greenland)" +254,40,"Edmonton (Canada)" +254,50,"Bedford (Canada)" +254,60,"Gander (Canada)" +254,70,"Monterey (USA)" +254,80,"Wallops Island (USA)" +254,90,"Gilmor Creek (USA)" +254,100,"Athens (Greece)" +98,231,"CNRM, Meteo France Climate Centre (HIRETYCS)" +98,232,"MPI, Max Planck Institute Climate Centre (HIRETYCS)" +98,233,"UKMO Climate Centre (HIRETYCS)" +98,234,"ECMWF (DEMETER)" +98,235,"INGV-CNR (Bologna, Italy)(DEMETER)" +98,236,"LODYC (Paris, France)(DEMETER)" +98,237,"DMI (Copenhagen, Denmark)(DEMETER)" +98,238,"INM (Madrid, Spain)(DEMETER)" +98,239,"CERFACS (Toulouse, France)(DEMETER)" +98,240,"ECMWF (PROVOST)" +98,241,"Meteo France (PROVOST)" +98,242,"EDF (PROVOST)" +98,243,"UKMO (PROVOST)" +98,244,"Biometeorology group, University of Veterinary Medicine, Vienna (ELDAS)" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv new file mode 100644 index 00000000..0dc3f871 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TMP","Temperature","K","UC_K2F" +1,"VTMP","Virtual temperature","K","UC_K2F" +2,"POT","Potential temperature","K","UC_K2F" +3,"EPOT","Pseudo-adiabatic potential temperature","K","UC_K2F" +4,"TMAX","Maximum temperature","K","UC_K2F" +5,"TMIN","Minimum temperature","K","UC_K2F" +6,"DPT","Dew point temperature","K","UC_K2F" +7,"DEPR","Dew point depression","K","UC_NONE" +8,"LAPR","Lapse rate","K/m","UC_NONE" +9,"TMPA","Temperature anomaly","K","UC_K2F" +10,"LHTFL","Latent heat net flux","W/(m^2)","UC_NONE" +11,"SHTFL","Sensible heat net flux","W/(m^2)","UC_NONE" +12,"HEATX","Heat index","K","UC_K2F" +13,"WCF","Wind chill factor","K","UC_K2F" +14,"MINDPD","Minimum dew point depression","K","UC_K2F" +15,"VPTMP","Virtual potential temperature","K","UC_K2F" +16,"SNOHF","Snow phase change heat flux","W/m^2","UC_NONE" +17,"SKINT","Skin temperature","K","UC_K2F" +18,"SNOT","Snow Temperature (top of snow)","K","UC_K2F" +19,"TTCHT","Turbulent Transfer Coefficient for Heat","Numeric","UC_NONE" +20,"TDCHT","Turbulent Diffusion Coefficient for Heat","m^2/s","UC_NONE" +21,"APTMP","Apparent Temperature","K","UC_K2F" +22,"TTSWR","Temperature Tendency due to Short-Wave Radiation","K/s","UC_NONE" +23,"TTLWR","Temperature Tendency due to Long-Wave Radiation","K/s","UC_NONE" +24,"TTSWRCS","Temperature Tendency due to Short-Wave Radiation, Clear Sky","K/s","UC_NONE" +25,"TTLWRCS","Temperature Tendency due to Long-Wave Radiation, Clear Sky","K/s","UC_NONE" +26,"TTPARM","Temperature Tendency due to parameterizations","K/s","UC_NONE" +27,"WETBT","Wet Bulb Temperature","K","UC_K2F" +28,"UCTMP","Unbalanced Component of Temperature","K","UC_K2F" +29,"TMPADV","Temperature Advection","K/s","UC_NONE" +30,"","Latent heat net flux due to evaporation","W m-2","UC_NONE" +31,"","Latent heat net flux due to sublimation","W m-2","UC_NONE" +32,"","Wet-bulb potential temperature","K","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv new file mode 100644 index 00000000..b728632c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"SPFH","Specific humidity","kg/kg","UC_NONE" +1,"RH","Relative humidity","%","UC_NONE" +2,"MIXR","Humidity mixing ratio","kg/kg","UC_NONE" +3,"PWAT","Precipitable water","kg/(m^2)","UC_NONE" +4,"VAPP","Vapor pressure","Pa","UC_NONE" +5,"SATD","Saturation deficit","Pa","UC_NONE" +6,"EVP","Evaporation","kg/(m^2)","UC_InchWater" +7,"PRATE","Precipitation rate","kg/(m^2 s)","UC_NONE" +8,"APCP","Total precipitation","kg/(m^2)","UC_InchWater" +9,"NCPCP","Large scale precipitation","kg/(m^2)","UC_NONE" +10,"ACPCP","Convective precipitation","kg/(m^2)","UC_NONE" +11,"SNOD","Snow depth","m","UC_M2Inch" +12,"SRWEQ","Snowfall rate water equivalent","kg/(m^2 s)","UC_NONE" +13,"WEASD","Water equivalent of accumulated snow depth","kg/(m^2)","UC_NONE" +14,"SNOC","Convective snow","kg/(m^2)","UC_NONE" +15,"SNOL","Large scale snow","kg/(m^2)","UC_NONE" +16,"SNOM","Snow melt","kg/(m^2)","UC_NONE" +17,"SNOAG","Snow age","day","UC_NONE" +18,"ABSH","Absolute humidity","kg/(m^3)","UC_NONE" +19,"PTYPE","Precipitation type","0=No precipitation; 1=Rain; 2=Thunderstorm; 3=Freezing rain; 4=Mixed/ice; 5=Snow; 6=Wet snow; 7=Mixture of rain and snow; 8=Ice pellets; 9=Graupel; 10=Hail; 11=Drizzle; 12=Freezing drizzle; 13-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +20,"ILIQW","Integrated liquid water","kg/(m^2)","UC_NONE" +21,"TCOND","Condensate","kg/kg","UC_NONE" +22,"CLWMR","Cloud mixing ratio","kg/kg","UC_NONE" +23,"ICMR","Ice water mixing ratio","kg/kg","UC_NONE" +24,"RWMR","Rain mixing ratio","kg/kg","UC_NONE" +25,"SNMR","Snow mixing ratio","kg/kg","UC_NONE" +26,"MCONV","Horizontal moisture convergence","kg/(kg s)","UC_NONE" +27,"MAXRH","Maximum relative humidity","%","UC_NONE" +28,"MAXAH","Maximum absolute humidity","kg/(m^3)","UC_NONE" +29,"ASNOW","Total snowfall","m","UC_M2Inch" +30,"PWCAT","Precipitable water category","0-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +31,"HAIL","Hail","m","UC_NONE" +32,"GRLE","Graupel (snow pellets)","kg/kg","UC_NONE" +33,"CRAIN","Categorical rain","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +34,"CFRZR","Categorical freezing rain","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +35,"CICEP","Categorical ice pellets","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +36,"CSNOW","Categorical snow","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +37,"CPRAT","Convective precipitation rate","kg/(m^2*s)","UC_NONE" +38,"MCONV","Horizontal moisture divergence","kg/(kg*s)","UC_NONE" +39,"CPOFP","Percent frozen precipitation","%","UC_NONE" +40,"PEVAP","Potential evaporation","kg/m^2","UC_NONE" +41,"PEVPR","Potential evaporation rate","W/m^2","UC_NONE" +42,"SNOWC","Snow cover","%","UC_NONE" +43,"FRAIN","Rain fraction of total cloud water","-","UC_NONE" +44,"RIME","Rime factor","-","UC_NONE" +45,"TCOLR","Total column integrated rain","kg/m^2","UC_NONE" +46,"TCOLS","Total column integrated snow","kg/m^2","UC_NONE" +47,"LSWP","Large scale water precipitation","kg/m^2","UC_NONE" +48,"CWP","Convective water precipitation","kg/m^2","UC_NONE" +49,"TWATP","Total water precipitation","kg/m^2","UC_NONE" +50,"TSNOWP","Total snow precipitation","kg/m^2","UC_NONE" +51,"TCWAT","Total column water","kg/m^2","UC_NONE" +52,"TPRATE","Total precipitation rate","kg/(m^2*s)","UC_NONE" +53,"TSRWE","Total snowfall rate water equivalent","kg/(m^2*s)","UC_NONE" +54,"LSPRATE","Large scale precipitation rate","kg/(m^2*s)","UC_NONE" +55,"CSRWE","Convective snowfall rate water equivalent","kg/(m^2*s)","UC_NONE" +56,"LSSRWE","Large scale snowfall rate water equivalent","kg/(m^2*s)","UC_NONE" +57,"TSRATE","Total snowfall rate","m/s","UC_NONE" +58,"CSRATE","Convective snowfall rate","m/s","UC_NONE" +59,"LSSRWE","Large scale snowfall rate","m/s","UC_NONE" +60,"SDWE","Snow depth water equivalent","kg/m^2","UC_NONE" +61,"SDEN","Snow density","kg/m^3","UC_NONE" +62,"SEVAP","Snow evaporation","kg/m^2","UC_NONE" +63,"","Reserved","-","UC_NONE" +64,"TCIWV","Total column integrated water vapour","kg/m^2","UC_NONE" +65,"RPRATE","Rain precipitation rate","kg/(m^2*s)","UC_NONE" +66,"SPRATE","Snow precipitation rate","kg/(m^2*s)","UC_NONE" +67,"FPRATE","Freezing rain precipitation rate","kg/(m^2*s)","UC_NONE" +68,"IPRATE","Ice pellets precipitation rate","kg/(m^2*s)","UC_NONE" +69,"TCOLW","Total Column Integrate Cloud Water","kg/m^2","UC_NONE" +70,"TCOLI","Total Column Integrate Cloud Ice","kg/m^2","UC_NONE" +71,"HAILMXR","Hail Mixing Ratio","kg/kg","UC_NONE" +72,"TCOLH","Total Column Integrate Hail","kg/m^2","UC_NONE" +73,"HAILPR","Hail Prepitation Rate","kg/(m^2*s)","UC_NONE" +74,"TCOLG","Total Column Integrate Graupel","kg/m^2","UC_NONE" +75,"GPRATE","Graupel (Snow Pellets) Prepitation Rate","kg/(m^2*s)","UC_NONE" +76,"CRRATE","Convective Rain Rate","kg/(m^2*s)","UC_NONE" +77,"LSRRATE","Large Scale Rain Rate","kg/(m^2*s)","UC_NONE" +78,"TCOLWA","Total Column Integrate Water (All components including precipitation)","kg/m^2","UC_NONE" +79,"EVARATE","Evaporation Rate","kg/(m^2*s)","UC_NONE" +80,"TOTCON","Total Condensate","kg/kg","UC_NONE" +81,"TCICON","Total Column-Integrate Condensate","kg/m^2","UC_NONE" +82,"CIMIXR","Cloud Ice Mixing Ratio","kg/kg","UC_NONE" +83,"SCLLWC","Specific Cloud Liquid Water Content","kg/kg","UC_NONE" +84,"SCLIWC","Specific Cloud Ice Water Content","kg/kg","UC_NONE" +85,"SRAINW","Specific Rain Water Content","kg/kg","UC_NONE" +86,"SSNOWW","Specific Snow Water Content","kg/kg","UC_NONE" +87,"SPRATE","Stratiform Precipitation Rate","kg/(m^2*s)","UC_NONE" +88,"CATCP","Categorical Convective Precipitation","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +89,"","Reserved","-","UC_NONE" +90,"TKMFLX","Total Kinematic Moisture Flux","kg/kg(m/s)","UC_NONE" +91,"UKMFLX","U-component (zonal) Kinematic Moisture Flux","kg/kg(m/s)","UC_NONE" +92,"VKMFLX","V-component (meridional) Kinematic Moisture Flux","kg/kg(m/s)","UC_NONE" +93,"RHWATER","Relative Humidity With Respect to Water","%","UC_NONE" +94,"RHICE","Relative Humidity With Respect to Ice","%","UC_NONE" +95,"FZPRATE","Freezing or Frozen Precipitation Rate","kg/(m^2*s)","UC_NONE" +96,"MASSDR","Mass Density of Rain","kg/m^3","UC_NONE" +97,"MASSDS","Mass Density of Snow","kg/m^3","UC_NONE" +98,"MASSDG","Mass Density of Graupel","kg/m^3","UC_NONE" +99,"MASSDH","Mass Density of Hail","kg/m^3","UC_NONE" +100,"SPNCR","Specific Number Concentration of Rain","kg^-1","UC_NONE" +101,"SPNCS","Specific Number Concentration of Snow","kg^-1","UC_NONE" +102,"SPNCG","Specific Number Concentration of Graupel","kg^-1","UC_NONE" +103,"SPNCH","Specific Number Concentration of Hail","kg^-1","UC_NONE" +104,"NUMDR","Number Density of Rain","m^-3","UC_NONE" +105,"NUMDS","Number Density of Snow","m^-3","UC_NONE" +106,"NUMDG","Number Density of Graupel","m^-3","UC_NONE" +107,"NUMDH","Number Density of Hail","m^-3","UC_NONE" +108,"SHTPRM","Specific Humidity Tendency due to Parameterizations","kg/kg(s)","UC_NONE" +109,"MDLWHVA","Mass Density of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Volume of Air","kg/m^3","UC_NONE" +110,"SMLWHMA","Specific Mass of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Moist Air","kg/kg","UC_NONE" +111,"MMLWHDA","Mass Mixing Ratio of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Dry Air","kg/kg","UC_NONE" +112,"MDLWGVA","Mass Density of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Volume of Air","kg/m^3","UC_NONE" +113,"SMLWGMA","Specific Mass of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Moist Air","kg/kg","UC_NONE" +114,"MMLWGDA","Mass Mixing Ratio of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Dry Air","kg/kg","UC_NONE" +115,"MDLWSVA","Mass Density of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Volume of Air","kg/m^3","UC_NONE" +116,"SMLWSMA","Specific Mass of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Moist Air","kg/kg","UC_NONE" +117,"MMLWSDA","Mass Mixing Ratio of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Dry Air","kg/kg","UC_NONE" +118,"UNCSH","Unbalanced Component of Specific Humidity","kg/kg","UC_NONE" +119,"UCSCLW","Unbalanced Component of Specific Cloud Liquid Water content","kg/kg","UC_NONE" +120,"UCSCIW","Unbalanced Component of Specific Cloud Ice Water content","kg/kg","UC_NONE" +121,"FSNOWC","Fraction of Snow Cover","Proportion","UC_NONE" +122,"","Precipitation intensity index","0=No precipitation occurrence; 1=Light precipitation; 2=Moderate precipitation; 3=Heavy precipitation; 4-254=Reserved; 255=Missing","UC_NONE" +123,"","Dominant precipitation type","0=No precipitation; 1=Rain; 2=Thunderstorm; 3=Freezing rain; 4=Mixed/ice; 5=Snow; 6=Wet snow; 7=Mixture of rain and snow; 8=Ice pellets; 9=Graupel; 10=Hail; 11=Drizzle; 12=Freezing drizzle; 13-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +124,"","Presence of showers","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +125,"","Presence of blowing snow","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +126,"","Presence of blizzard","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +127,"","Ice pellets (non-water equivalent) precipitation rate","m/s","UC_NONE" +128,"","Total solid precipitation rate","kg m-2 s-1","UC_NONE" +129,"","Effective radius of cloud water","m","UC_NONE" +130,"","Effective radius of rain","m","UC_NONE" +131,"","Effective radius of cloud ice","m","UC_NONE" +132,"","Effective radius of snow","m","UC_NONE" +133,"","Effective radius of graupel","m","UC_NONE" +134,"","Effective radius of hail","m","UC_NONE" +135,"","Effective radius of subgrid liquid clouds","m","UC_NONE" +136,"","Effective radius of subgrid ice clouds","m","UC_NONE" +137,"","Effective aspect ratio of rain","-","UC_NONE" +138,"","Effective aspect ratio of cloud ice","-","UC_NONE" +139,"","Effective aspect ratio of snow","-","UC_NONE" +140,"","Effective aspect ratio of graupel","-","UC_NONE" +141,"","Effective aspect ratio of hail","-","UC_NONE" +142,"","Effective aspect ratio of subgrid ice clouds","-","UC_NONE" +143,"","Potential evaporation rate","kg m-2 s-1","UC_NONE" +144,"","Specific rain water content (convective)","kg kg-1","UC_NONE" +145,"","Specific snow water content (convective)","kg kg-1","UC_NONE" +146,"","Cloud ice precipitation rate","kg m-2 s-1","UC_NONE" +147,"","Character of precipitation","0=None; 1=Showers; 2=Intermittent; 3=Continuous; 4-254=Reserved; 255=Missing","UC_NONE" +148,"","Snow evaporation rate","kg m-2 s-1","UC_NONE" +149,"","Cloud water mixing ratio","kg kg-1","UC_NONE" +150,"","Column integrated eastward water vapour mass flux","kg m-1 s-1","UC_NONE" +151,"","Column integrated northward water vapour mass flux","kg m-1 s-1","UC_NONE" +152,"","Column integrated eastward cloud liquid water mass flux","kg m-1 s-1","UC_NONE" +153,"","Column integrated northward cloud liquid water mass flux","kg m-1 s-1","UC_NONE" +154,"","Column integrated eastward cloud ice mass flux","kg m-1 s-1","UC_NONE" +155,"","Column integrated northward cloud ice mass flux","kg m-1 s-1","UC_NONE" +156,"","Column integrated eastward rain mass flux","kg m-1 s-1","UC_NONE" +157,"","Column integrated northward rain mass flux","kg m-1 s-1","UC_NONE" +158,"","Column integrated eastward snow mass flux","kg m-1 s-1","UC_NONE" +159,"","Column integrated northward snow mass flux","kg m-1 s-1","UC_NONE" +160,"","Column integrated divergence of water vapour mass flux","kg m-2 s-1","UC_NONE" +161,"","Column integrated divergence of cloud liquid water mass flux","kg m-2 s-1","UC_NONE" +162,"","Column integrated divergence of cloud ice mass flux","kg m-2 s-1","UC_NONE" +163,"","Column integrated divergence of rain mass flux","kg m-2 s-1","UC_NONE" +164,"","Column integrated divergence of snow mass flux","kg m-2 s-1","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv new file mode 100644 index 00000000..15e88357 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_13.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"AEROT","Aerosol type","0=Aerosol not present; 1=Aerosol present; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +1,"","Reserved","","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv new file mode 100644 index 00000000..22fbc219 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_14.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TOZNE","Total ozone","Dobson","UC_NONE" +1,"O3MR","Ozone mixing ratio","kg/kg","UC_NONE" +2,"TCIOZ","Total column integrated ozone","Dobson","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv new file mode 100644 index 00000000..8a99899d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_15.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"BSWID","Base spectrum width","m/s","UC_NONE" +1,"BREF","Base reflectivity","dB","UC_NONE" +2,"BRVEL","Base radial velocity","m/s","UC_NONE" +3,"VERIL","Vertically-integrated liquid","kg/m","UC_NONE" +4,"LMAXBR","Layer maximum base reflectivity","dB","UC_NONE" +5,"PREC","Precipitation","kg/(m^2)","UC_NONE" +6,"RDSP1","Radar spectra (1)","-","UC_NONE" +7,"RDSP2","Radar spectra (2)","-","UC_NONE" +8,"RDSP3","Radar spectra (3)","-","UC_NONE" +9,"RFCD","Reflectivity of Cloud Droplets","dB","UC_NONE" +10,"RFCI","Reflectivity of Cloud Ice","dB","UC_NONE" +11,"RFSNOW","Reflectivity of Snow","dB","UC_NONE" +12,"RFRAIN","Reflectivity of Rain","dB","UC_NONE" +13,"RFGRPL","Reflectivity of Graupel","dB","UC_NONE" +14,"RFHAIL","Reflectivity of Hail","dB","UC_NONE" +15,"HSR","Hybrid Scan Reflectivity","dB","UC_NONE" +16,"HSRHT","Hybrid Scan Reflectivity Height","m","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv new file mode 100644 index 00000000..661bb886 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_16.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"REFZR","Equivalent radar reflectivity for rain","mm^6/m^3","UC_NONE" +1,"REFZI","Equivalent radar reflectivity for snow","mm^6/m^3","UC_NONE" +2,"REFZC","Equivalent radar reflectivity for parameterized convection","mm^6/m^3","UC_NONE" +3,"RETOP","Echo Top","m","UC_NONE" +4,"REFD","Reflectivity","dB","UC_NONE" +5,"REFC","Composity reflectivity","dB","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv new file mode 100644 index 00000000..2ceceea9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_17.csv @@ -0,0 +1,11 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"LTNGSD","Lightning Strike Density","m^2/s","UC_NONE" +1,"LTPINX","Lightning Potential Index (LPI) (see Note)","J/kg","UC_NONE" +2,"","Cloud-to-ground lightning flash density","km-2 day-1","UC_NONE" +3,"","Cloud-to-cloud lightning flash density","km-2 day-1","UC_NONE" +4,"","Total lightning flash density","km-2 day-1","UC_NONE" +5,"","Subgrid-scale lightning potential index","J kg-1","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv new file mode 100644 index 00000000..d316947a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_18.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"ACCES","Air concentration of Caesium 137","Bq/(m^3)","UC_NONE" +1,"ACIOD","Air concentration of Iodine 131","Bq/(m^3)","UC_NONE" +2,"ACRADP","Air concentration of radioactive pollutant","Bq/(m^3)","UC_NONE" +3,"GDCES","Ground deposition of Caesium 137","Bq/(m^2)","UC_NONE" +4,"GDIOD","Ground deposition of Iodine 131","Bq/(m^2)","UC_NONE" +5,"GDRADP","Ground deposition of radioactive pollutant","Bq/(m^2)","UC_NONE" +6,"TIACCP","Time-integrated air concentration of caesium pollutant","(Bq s)/(m^3)","UC_NONE" +7,"TIACIP","Time-integrated air concentration of iodine pollutant","(Bq s)/(m^3)","UC_NONE" +8,"TIACRP","Time-integrated air concentration of radioactive pollutant","(Bq s)/(m^3)","UC_NONE" +9,"","Reserved","-","UC_NONE" +10,"AIRCON","Air Concentration","Bq/(m^3)","UC_NONE" +11,"WETDEP","Wet Deposition","Bq/(m^2)","UC_NONE" +12,"DRYDEP","Dry Deposition","Bq/(m^2)","UC_NONE" +13,"TOTLWD","Total Deposition (Wet + Dry)","Bq/(m^2)","UC_NONE" +14,"SACON","Specific Activity Concentration","Bq/kg","UC_NONE" +15,"MAXACON","Maximum of Air Concentration in Layer","Bq/(m^3)","UC_NONE" +16,"HMXACON","Height of Maximum of Air Concentration","m","UC_NONE" +17,"CIAIRC","Column-Integrated Air Concentration","Bq/(m^2)","UC_NONE" +18,"CAACL","Column-Averaged Air Concentration in Layer","Bq/(m^3)","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv new file mode 100644 index 00000000..e155585d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_19.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"VIS","Visibility","m","UC_M2StatuteMile" +1,"ALBDO","Albedo","%","UC_NONE" +2,"TSTM","Thunderstorm probability","%","UC_NONE" +3,"MIXHT","Mixed layer depth","m","UC_NONE" +4,"VOLASH","Volcanic ash","0=Not present; 1=Present; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +5,"ICIT","Icing top","m","UC_NONE" +6,"ICIB","Icing base","m","UC_NONE" +7,"ICI","Icing","0=None; 1=Light; 2=Moderate; 3=Severe; 4=Trace; 5=Heavy; 6-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +8,"TURBT","Turbulance top","m","UC_NONE" +9,"TURBB","Turbulence base","m","UC_NONE" +10,"TURB","Turbulance","0=None (smooth); 1=Light; 2=Moderate; 3=Severe; 4=Extreme; 5-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +11,"TKE","Turbulent kinetic energy","J/kg","UC_NONE" +12,"PBLREG","Planetary boundary layer regime","0=Reserved; 1=Stable; 2=Mechanically driven turbulence; 3=Forced convection; 4=Free convection; 5-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +13,"CONTI","Contrail intensity","0=Contrail not present; 1=Contrail present; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +14,"CONTET","Contrail engine type","0=Low bypass; 1=High bypass; 2=Non-bypass; 3-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +15,"CONTT","Contrail top","m","UC_NONE" +16,"CONTB","Contrail base","m","UC_NONE" +17,"MXSALB","Maximum snow albedo","%","UC_NONE" +18,"SNFALB","Snow free albedo","%","UC_NONE" +19,"SALBD","Snow albedo","%","UC_NONE" +20,"ICIP","Icing","%","UC_NONE" +21,"CTP","In-Cloud Turbulence","%","UC_NONE" +22,"CAT","Clear Air Turbulence","%","UC_NONE" +23,"SLDP","Supercooled Large Droplet Probability","%","UC_NONE" +24,"CONTKE","Convective Turbulent Kinetic Energy","J/kg","UC_NONE" +25,"WIWW","Weather Interpretation ww (WMO)","=(see FM 94 BUFR/FM 95 CREX Code table 0 20 003 - Present weather)","UC_NONE" +26,"CONVO","Convective Outlook","0=No risk area; 1=Reserved; 2=General thunderstorm risk area; 3=Reserved; 4=Slight risk area; 5=Reserved; 6=Moderate risk area; 7=Reserved; 8=High risk area; 9-10=Reserved; 11=Dry thunderstorm (dry lightning) risk area; 12-13=Reserved; 14=Critical risk area; 15-17=Reserved; 18=Extremely critical risk area; 19-254=Reserved; 255=Missing","UC_NONE" +27,"ICESC","Icing Scenario","0=None; 1=General; 2=Convective; 3=Stratiform; 4=Freezing; 5-191=Reserved; 192-254=Reserved for local use; 255=Missing value","UC_NONE" +28,"MWTURB","Mountain Wave Turbulence (Eddy Dissipation Rate)","m^(2/3)/s","UC_NONE" +29,"CATEDR","Clear Air Turbulence (CAT) (Eddy Dissipation Rate)","m^(2/3)/s","UC_NONE" +30,"EDPARM","Eddy Dissipation Parameter","m^(2/3)/s","UC_NONE" +31,"MXEDPRM","Maximum of Eddy Dissipation Parameter in Layer","m^(2/3)/s","UC_NONE" +32,"HIFREL","Highest Freezing Level","m","UC_NONE" +33,"VISLFOG","Visibility Through Liquid Fog","m","UC_NONE" +34,"VISIFOG","Visibility Through Ice Fog","m","UC_NONE" +35,"VISBSN","Visibility Through Blowing Snow","m","UC_NONE" +36,"","Presence of snow squalls","0=No; 1=Yes; 2-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +37,"","Icing severity","0=None; 1=Trace; 2=Light; 3=Moderate; 4=Severe; 5-254=Reserved; 255=Missing value","UC_NONE" +38,"","Sky transparency index","0=Worst; 1=Very poor; 2=Poor; 3=Average; 4=Good; 5=Excellent; 6-190=Reserved; 191=Unknown; 192-254=Reserved for local use; 255=Missing","UC_NONE" +39,"","Seeing index","0=Worst; 1=Very poor; 2=Poor; 3=Average; 4=Good; 5=Excellent; 6-190=Reserved; 191=Unknown; 192-254=Reserved for local use; 255=Missing","UC_NONE" +40,"","Snow level","m","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv new file mode 100644 index 00000000..807b1e39 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_190.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Arbitrary text string","CCITTIA5","UC_NONE" +1,"","Reserved","","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv new file mode 100644 index 00000000..3a3cf17f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_191.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TSEC","Seconds prior to initial reference time (defined in Section 1)","s","UC_NONE" +1,"GEOLAT","Geographical Latitude","deg N","UC_NONE" +2,"GEOLON","Geographical Longitude","deg E","UC_NONE" +3,"DSLOBS","Days Since Last Observation","d","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv new file mode 100644 index 00000000..1aad6efe --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"WDIR","Wind direction (from which blowing)","deg true","UC_NONE" +1,"WIND","Wind speed","m/s","UC_MS2Knots" +2,"UGRD","u-component of wind","m/s","UC_NONE" +3,"VGRD","v-component of wind","m/s","UC_NONE" +4,"STRM","Stream function","(m^2)/s","UC_NONE" +5,"VPOT","Velocity potential","(m^2)/s","UC_NONE" +6,"MNTSF","Montgomery stream function","(m^2)/(s^2)","UC_NONE" +7,"SGCVV","Sigma coordinate vertical velocity","1/s","UC_NONE" +8,"VVEL","Vertical velocity (pressure)","Pa/s","UC_NONE" +9,"DZDT","Vertical velocity (geometric)","m/s","UC_NONE" +10,"ABSV","Absolute vorticity","1/s","UC_NONE" +11,"ABSD","Absolute divergence","1/s","UC_NONE" +12,"RELV","Relative vorticity","1/s","UC_NONE" +13,"RELD","Relative divergence","1/s","UC_NONE" +14,"PVORT","Potential vorticity","K(m^2)/(kg s)","UC_NONE" +15,"VUCSH","Vertical u-component shear","1/s","UC_NONE" +16,"VVCSH","Vertical v-component shear","1/s","UC_NONE" +17,"UFLX","Momentum flux; u component","N/(m^2)","UC_NONE" +18,"VFLX","Momentum flux; v component","N/(m^2)","UC_NONE" +19,"WMIXE","Wind mixing energy","J","UC_NONE" +20,"BLYDP","Boundary layer dissipation","W/(m^2)","UC_NONE" +21,"MAXGUST","Maximum wind speed","m/s","UC_NONE" +22,"GUST","Wind speed (gust)","m/s","UC_MS2Knots" +23,"UGUST","u-component of wind (gust)","m/s","UC_NONE" +24,"VGUST","v-component of wind (gust)","m/s","UC_NONE" +25,"VWSH","Vertical speed shear","1/s","UC_NONE" +26,"MFLX","Horizontal momentum flux","N/(m^2)","UC_NONE" +27,"USTM","U-component storm motion","m/s","UC_NONE" +28,"VSTM","V-component storm motion","m/s","UC_NONE" +29,"CD","Drag coefficient","-","UC_NONE" +30,"FRICV","Frictional velocity","m/s","UC_NONE" +31,"TDCMOM","Turbulent Diffusion Coefficient for Momentum","(m^2)/s","UC_NONE" +32,"ETACVV","Eta Coordinate Vertical Velocity","1/s","UC_NONE" +33,"WINDF","Wind Fetch","m","UC_NONE" +34,"NWIND","Normal Wind Component","m/s","UC_NONE" +35,"TWIND","Tangential Wind Component","m/s","UC_NONE" +36,"AFRWE","Amplitude Function for Rossby Wave Envelope for Meridional Wind","m/s","UC_NONE" +37,"NTSS","Northward Turbulent Surface Stress","1/(m^2)","UC_NONE" +38,"ETSS","Eastward Turbulent Surface Stress","1/(m^2)","UC_NONE" +39,"EWTPARM","Eastward Wind Tendency Due to Parameterizations","m/(s^2)","UC_NONE" +40,"NWTPARM","Northward Wind Tendency Due to Parameterizations","m/(s^2)","UC_NONE" +41,"UGWIND","U-Component of Geostrophic Wind","m/s","UC_NONE" +42,"VGWIND","V-Component of Geostrophic Wind","m/s","UC_NONE" +43,"GEOWD","Geostrophic Wind Direction","deg true","UC_NONE" +44,"GEOWS","Geostrophic Wind Speed","m/s","UC_NONE" +45,"UNDIV","Unbalanced Component of Divergence","1/s","UC_NONE" +46,"VORTADV","Vorticity Advection","1/(s^2)","UC_NONE" +47,"","Surface roughness for heat","m","UC_NONE" +48,"","Surface roughness for moisture","m","UC_NONE" +49,"","Wind stress","N m-2","UC_NONE" +50,"","Eastward wind stress","N m-2","UC_NONE" +51,"","Northward wind stress","N m-2","UC_NONE" +52,"","u-component of wind stress","N m-2","UC_NONE" +53,"","v-component of wind stress","N m-2","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv new file mode 100644 index 00000000..65c7d428 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_20.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"MASSDEN","Mass Density (Concentration)","kg/(m^3)","UC_NONE" +1,"COLMD","Column-Integrated Mass Density","kg/(m^2)","UC_NONE" +2,"MASSMR","Mass Mixing Ratio (Mass Fraction in Air)","kg/kg","UC_NONE" +3,"AEMFLX","Atmosphere Emission Mass Flux","kg/(m^2*s)","UC_NONE" +4,"ANPMFLX","Atmosphere Net Production Mass Flux","kg/(m^2*s)","UC_NONE" +5,"ANPEMFLX","Atmosphere Net Production and Emission Mass Flux","kg/(m^2*s)","UC_NONE" +6,"SDDMFLX","Surface Dry Deposition Mass Flux","kg/(m^2*s)","UC_NONE" +7,"SWDMFLX","Surface Wet Deposition Mass Flux","kg/(m^2*s)","UC_NONE" +8,"AREMFLX","Atmosphere Re-Emission Mass Flux","kg/(m^2*s)","UC_NONE" +9,"WLSMFLX","Wet Deposition by Large-Scale Precipitation Mass Flux","kg/(m^2*s)","UC_NONE" +10,"WDCPMFLX","Wet Deposition by Convective Precipitation Mass Flux","kg/(m^2*s)","UC_NONE" +11,"SEDMFLX","Sedimentation Mass Flux","kg/(m^2*s)","UC_NONE" +12,"DDMFLX","Dry Deposition Mass Flux","kg/(m^2*s)","UC_NONE" +13,"TRANHH","Transfer From Hydrophobic to Hydrophilic","kg(kg*s)","UC_NONE" +14,"TRSDS","Transfer From SO2 (Sulphur Dioxide) to SO4 (Sulphate)","kg(kg*s)","UC_NONE" +15,"DDVEL","Dry deposition velocity","m/s","UC_NONE" +16,"MSSRDRYA","Mass mixing ratio with respect to dry air","kg/kg","UC_NONE" +17,"MSSRWETA","Mass mixing ratio with respect to wet air","kg/kg","UC_NONE" +18,"","Potential of hydrogen (pH)","pH","UC_NONE" +19,"","Reserved","-","UC_NONE" +20,"","Reserved","-","UC_NONE" +21,"","Reserved","-","UC_NONE" +22,"","Reserved","-","UC_NONE" +23,"","Reserved","-","UC_NONE" +24,"","Reserved","-","UC_NONE" +25,"","Reserved","-","UC_NONE" +26,"","Reserved","-","UC_NONE" +27,"","Reserved","-","UC_NONE" +28,"","Reserved","-","UC_NONE" +29,"","Reserved","-","UC_NONE" +30,"","Reserved","-","UC_NONE" +31,"","Reserved","-","UC_NONE" +32,"","Reserved","-","UC_NONE" +33,"","Reserved","-","UC_NONE" +34,"","Reserved","-","UC_NONE" +35,"","Reserved","-","UC_NONE" +36,"","Reserved","-","UC_NONE" +37,"","Reserved","-","UC_NONE" +38,"","Reserved","-","UC_NONE" +39,"","Reserved","-","UC_NONE" +40,"","Reserved","-","UC_NONE" +41,"","Reserved","-","UC_NONE" +42,"","Reserved","-","UC_NONE" +43,"","Reserved","-","UC_NONE" +44,"","Reserved","-","UC_NONE" +45,"","Reserved","-","UC_NONE" +46,"","Reserved","-","UC_NONE" +47,"","Reserved","-","UC_NONE" +48,"","Reserved","-","UC_NONE" +49,"","Reserved","-","UC_NONE" +50,"AIA","Amount in Atmosphere","mol","UC_NONE" +51,"CONAIR","Concentration in Air","mol/(m^3)","UC_NONE" +52,"VMXR","Volume Mixing Ratio (Fraction in Air)","mol/mol","UC_NONE" +53,"CGPRC","Chemical Gross Production Rate of Concentration","mol/(m^3*s)","UC_NONE" +54,"CGDRC","Chemical Gross Destruction Rate of Concentration","mol/(m^3*s)","UC_NONE" +55,"SFLUX","Surface Flux","mol/(m^2*s)","UC_NONE" +56,"COAIA","Changes of Amount in Atmosphere","mol/s","UC_NONE" +57,"TYABA","Total Yearly Average Burden of the Atmosphere","mol","UC_NONE" +58,"TYAAL","Total Yearly Average Atmospheric Loss","mol/s","UC_NONE" +59,"ANCON","Aerosol Number Concentration","1/(m^3)","UC_NONE" +60,"ASNCON","Aerosol Specific Number Concentration","1/kg","UC_NONE" +61,"MXMASSD","Maximum of Mass Density","kg(/m^3)","UC_NONE" +62,"HGTMD","Height of Mass Density","m","UC_NONE" +63,"CAVEMDL","Column-Averaged Mass Density in Layer","kg/(m^3)","UC_NONE" +64,"MOLRDRYA","Mole fraction with respect to dry air","mol/mol","UC_NONE" +65,"MOLRWETA","Mole fraction with respect to dry air","mol/mol","UC_NONE" +66,"CINCLDSP","Column-integrated in-cloud scavenging rate by precipitation","kg/(m^2 s)","UC_NONE" +67,"CBLCLDSP","Column-integrated below-cloud scavenging rate by precipitation","kg/(m^2 s)","UC_NONE" +68,"CIRELREP","Column-integrated release rate from evaporating precipitation","kg/(m^2 s)","UC_NONE" +69,"CINCSLSP","Column-integrated in-cloud scavenging rate by large-scale precipitation","kg/(m^2 s)","UC_NONE" +70,"CBECSLSP","Column-integrated below-cloud scavenging rate by large-scale precipitation","kg/(m^2 s)","UC_NONE" +71,"CRERELSP","Column-integrated release rate from evaporating large-scale precipitation","kg/(m^2 s)-","UC_NONE" +72,"CINCSRCP","Column-integrated in-cloud scavenging rate by convective precipitation","kg/(m^2 s)","UC_NONE" +73,"CBLCSRCP","Column-integrated below-cloud scavenging rate by convective precipitation","kg/(m^2 s)","UC_NONE" +74,"CIRERECP","Column-integrated release rate from evaporating convective precipitation","kg/(m^2 s)","UC_NONE" +75,"WFIREFLX","Wildfire flux","kg/(m^2 s)","UC_NONE" +76,"","Emission rate","kg kg-1 s-1","UC_NONE" +77,"","Surface emission flux","kg m-2 s-1","UC_NONE" +78,"","Column integrated eastward mass flux","kg m-1 s-1","UC_NONE" +79,"","Column integrated northward mass flux","kg m-1 s-1","UC_NONE" +80,"","Column integrated divergence of mass flux","kg m-2 s-1","UC_NONE" +81,"","Column integrated net source","kg m-2 s-1","UC_NONE" +82,"","Reserved","-","UC_NONE" +83,"","Reserved","-","UC_NONE" +84,"","Reserved","-","UC_NONE" +85,"","Reserved","-","UC_NONE" +86,"","Reserved","-","UC_NONE" +87,"","Reserved","-","UC_NONE" +88,"","Reserved","-","UC_NONE" +89,"","Reserved","-","UC_NONE" +90,"","Reserved","-","UC_NONE" +91,"","Reserved","-","UC_NONE" +92,"","Reserved","-","UC_NONE" +93,"","Reserved","-","UC_NONE" +94,"","Reserved","-","UC_NONE" +95,"","Reserved","-","UC_NONE" +96,"","Reserved","-","UC_NONE" +97,"","Reserved","-","UC_NONE" +98,"","Reserved","-","UC_NONE" +99,"","Reserved","-","UC_NONE" +100,"SADEN","Surface Area Density (Aerosol)","1/m","UC_NONE" +101,"ATMTK","Vertical Visual Range","m","UC_NONE" +102,"AOTK","Atmosphere Optical Thickness","Numeric","UC_NONE" +103,"SSALBK","Single Scattering Albedo","Numeric","UC_NONE" +104,"ASYSFK","Asymmetry Factor","Numeric","UC_NONE" +105,"AECOEF","Aerosol Extinction Coefficient","1/m","UC_NONE" +106,"AACOEF","Aerosol Absorption Coefficient","1/m","UC_NONE" +107,"ALBSAT","Aerosol Lidar Backscatter from Satellite","1/(m*sr)","UC_NONE" +108,"ALBGRD","Aerosol Lidar Backscatter from the Ground","1/(m*sr)","UC_NONE" +109,"ALESAT","Aerosol Lidar Extinction from Satellite","1/m","UC_NONE" +110,"ALEGRD","Aerosol Lidar Extinction from the Ground","1/m","UC_NONE" +111,"ANGSTEXP","Angstrom Exponent","Numeric","UC_NONE" +112,"SCTAOTK","Scattering Aerosol Optical Thickness","Numeric","UC_NONE" +113,"","Reserved","-","UC_NONE" +114,"","Reserved","-","UC_NONE" +115,"","Reserved","-","UC_NONE" +116,"","Reserved","-","UC_NONE" +117,"","Reserved","-","UC_NONE" +118,"","Reserved","-","UC_NONE" +119,"","Reserved","-","UC_NONE" +120,"","Reserved","-","UC_NONE" +121,"","Reserved","-","UC_NONE" +122,"","Reserved","-","UC_NONE" +123,"","Reserved","-","UC_NONE" +124,"","Reserved","-","UC_NONE" +125,"","Reserved","-","UC_NONE" +126,"","Reserved","-","UC_NONE" +127,"","Reserved","-","UC_NONE" +128,"","Reserved","-","UC_NONE" +129,"","Reserved","-","UC_NONE" +130,"","Reserved","-","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv new file mode 100644 index 00000000..02d627f1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_21.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Column integrated potential + internal energy","J m-2","UC_NONE" +1,"","Column integrated kinetic energy","J m-2","UC_NONE" +2,"","Column integrated total energy","J m-2","UC_NONE" +3,"","Column integrated enthalpy","J m-2","UC_NONE" +4,"","Column integrated water enthalpy","J m-2","UC_NONE" +5,"","Column integrated eastward enthalpy flux","W m-1","UC_NONE" +6,"","Column integrated northward enthalpy flux","W m-1","UC_NONE" +7,"","Column integrated eastward potential energy flux","W m-1","UC_NONE" +8,"","Column integrated northward potential energy flux","W m-1","UC_NONE" +9,"","Column integrated eastward kinetic energy flux","W m-1","UC_NONE" +10,"","Column integrated northward kinetic energy flux","W m-1","UC_NONE" +11,"","Column integrated eastward total energy flux","W m-1","UC_NONE" +12,"","Column integrated northward total energy flux","W m-1","UC_NONE" +13,"","Divergence of column integrated enthalpy flux","W m-2","UC_NONE" +14,"","Divergence of column integrated potential energy flux","W m-2","UC_NONE" +15,"","Divergence of column integrated water potential energy flux","W m-2","UC_NONE" +16,"","Divergence of column integrated kinetic energy flux","W m-2","UC_NONE" +17,"","Divergence of column integrated total energy flux","W m-2","UC_NONE" +18,"","Divergence of column integrated water enthalpy flux","W m-2","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv new file mode 100644 index 00000000..4cd4def6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"PRES","Pressure","Pa","UC_NONE" +1,"PRMSL","Pressure reduced to MSL","Pa","UC_NONE" +2,"PTEND","Pressure tendency","Pa/s","UC_NONE" +3,"ICAHT","ICAO Standard Atmosphere Reference Height","m","UC_NONE" +4,"GP","Geopotential","(m^2)/(s^2)","UC_NONE" +5,"HGT","Geopotential height","gpm","UC_NONE" +6,"DIST","Geometric height","m","UC_M2Feet" +7,"HSTDV","Standard deviation of height","m","UC_NONE" +8,"PRESA","Pressure anomaly","Pa","UC_NONE" +9,"GPA","Geopotential height anomaly","gpm","UC_NONE" +10,"DEN","Density","kg/(m^3)","UC_NONE" +11,"ALTS","Altimeter setting","Pa","UC_NONE" +12,"THICK","Thickness","m","UC_NONE" +13,"PRESALT","Pressure altitude","m","UC_NONE" +14,"DENALT","Density altitude","m","UC_NONE" +15,"5WAVH","5-wave geopotential height","gpm","UC_NONE" +16,"U-GWD","Zonal flux of gravity wave stress","N/(m^2)","UC_NONE" +17,"V-GWD","Meridional flux of gravity wave stress","N/(m^2)","UC_NONE" +18,"HPBL","Planetary boundary layer height","m","UC_NONE" +19,"5WAVA","5-wave geopotential height anomaly","gpm","UC_NONE" +20,"SDSGSO","Standard deviation of sub-grid scale orography","m","UC_NONE" +21,"AOSGSO","Angle of sub-gridscale orography","rad","UC_NONE" +22,"SSGSO","Slope of sub-gridscale orography","Numeric","UC_NONE" +23,"GSGSO","Gravity wave dissipation","W/m^2","UC_NONE" +24,"ASGSO","Anisotrophy of sub-gridscale orography","Numeric","UC_NONE" +25,"NLPRES","Natural Logarithm of Pressure in Pa","Numeric","UC_NONE" +26,"EXPRES","Exner Pressure","Numeric","UC_NONE" +27,"UMFLX","Updraught Mass Flux","kg/(m^2*s)","UC_NONE" +28,"DMFLX","Downdraught Mass Flux","kg/(m^2*s)","UC_NONE" +29,"UDRATE","Updraught Detrainment Rate","kg/(m^3*s)","UC_NONE" +30,"DDRATE","Downdraught Detrainment Rate","kg/(m^3*s)","UC_NONE" +31,"UCLSPRS","Unbalanced Component of Logarithm of Surface Pressure","","UC_NONE" +32,"","Saturation water vapour pressure","Pa","UC_NONE" +33,"","Geometric altitude above mean sea level","m","UC_NONE" +34,"","Geometric height above ground level","m","UC_NONE" +35,"","Column integrated divergence of total mass flux","kg m-2 s-1","UC_NONE" +36,"","Column integrated eastward total mass flux","kg m-1 s-1","UC_NONE" +37,"","Column integrated northward total mass flux","kg m-1 s-1","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv new file mode 100644 index 00000000..065de288 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"NSWRS","Net short-wave radiation flux (surface)","W/(m^2)","UC_NONE" +1,"NSWRT","Net short-wave radiation flux (top of atmosphere)","W/(m^2)","UC_NONE" +2,"SWAVR","Short wave radiation flux","W/(m^2)","UC_NONE" +3,"GRAD","Global radiation flux","W/(m^2)","UC_NONE" +4,"BRTMP","Brightness temperature","K","UC_NONE" +5,"LWRAD","Radiance (with respect to wave number)","W/(m sr)","UC_NONE" +6,"SWRAD","Radiance (with respect to wave length)","W/(m^3 sr)","UC_NONE" +7,"DSWRF","Downward short-wave radiation flux","W/(m^2)","UC_NONE" +8,"USWRF","Upward short-wave radiation flux","W/(m^2)","UC_NONE" +9,"NSWRF","Net short wave radiation flux","W/(m^2)","UC_NONE" +10,"PHOTAR","Photosynthetically active radiation","W/(m^2)","UC_NONE" +11,"NSWRFCS","Net short-wave radiation flux; clear sky","W/(m^2)","UC_NONE" +12,"DWUVR","Downward UV radiation","W/(m^2)","UC_NONE" +13,"DSWRFLX","Direct Short Wave Radiation Flux","W/(m^2)","UC_NONE" +14,"DIFSWRF","Diffuse Short Wave Radiation Flux","W/(m^2)","UC_NONE" +15,"","Upward UV radiation emitted/reflected from the Earth's surface","W m-2","UC_NONE" +16,"","Reserved","-","UC_NONE" +17,"","Reserved","-","UC_NONE" +18,"","Reserved","-","UC_NONE" +19,"","Reserved","-","UC_NONE" +20,"","Reserved","-","UC_NONE" +21,"","Reserved","-","UC_NONE" +22,"","Reserved","-","UC_NONE" +23,"","Reserved","-","UC_NONE" +24,"","Reserved","-","UC_NONE" +25,"","Reserved","-","UC_NONE" +26,"","Reserved","-","UC_NONE" +27,"","Reserved","-","UC_NONE" +28,"","Reserved","-","UC_NONE" +29,"","Reserved","-","UC_NONE" +30,"","Reserved","-","UC_NONE" +31,"","Reserved","-","UC_NONE" +32,"","Reserved","-","UC_NONE" +33,"","Reserved","-","UC_NONE" +34,"","Reserved","-","UC_NONE" +35,"","Reserved","-","UC_NONE" +36,"","Reserved","-","UC_NONE" +37,"","Reserved","-","UC_NONE" +38,"","Reserved","-","UC_NONE" +39,"","Reserved","-","UC_NONE" +40,"","Reserved","-","UC_NONE" +41,"","Reserved","-","UC_NONE" +42,"","Reserved","-","UC_NONE" +43,"","Reserved","-","UC_NONE" +44,"","Reserved","-","UC_NONE" +45,"","Reserved","-","UC_NONE" +46,"","Reserved","-","UC_NONE" +47,"","Reserved","-","UC_NONE" +48,"","Reserved","-","UC_NONE" +49,"","Reserved","-","UC_NONE" +50,"UVIUCS","UV index (under clear sky)","Numeric","UC_NONE" +51,"UVI","UV index","W/(m^2)","UC_UVIndex" +52,"DSWRFCS","Downward Short-Wave Radiation Flux, Clear Sky","W/(m^2)","UC_NONE" +53,"USWRFCS","Upward Short-Wave Radiation Flux, Clear Sky","W/(m^2)","UC_NONE" +54,"","Direct normal short-wave radiation flux","W m-2","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv new file mode 100644 index 00000000..198829cd --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_5.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"NLWRS","Net long wave radiation flux (surface)","W/(m^2)","UC_NONE" +1,"NLWRT","Net long wave radiation flux (top of atmosphere)","W/(m^2)","UC_NONE" +2,"LWAVR","Long wave radiation flux","W/(m^2)","UC_NONE" +3,"DLWRF","Downward long-wave radiation flux","W/(m^2)","UC_NONE" +4,"ULWRF","Upward long-wave radiation flux","W/(m^2)","UC_NONE" +5,"NLWRF","Net long wave radiation flux","W/(m^2)","UC_NONE" +6,"NLWRCS","Net long-wave radiation flux; clear sky","W/(m^2)","UC_NONE" +7,"BRTEMP","Brightness Temperature","K","UC_K2F" +8,"DLWRFCS","Downward Long-Wave Radiation Flux, Clear Sky","W/(m^2)","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv new file mode 100644 index 00000000..f02c05ad --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_6.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"CICE","Cloud Ice","kg/(m^2)","UC_NONE" +1,"TCDC","Total cloud cover","%","UC_NONE" +2,"CDCON","Convective cloud cover","%","UC_NONE" +3,"LCDC","Low cloud cover","%","UC_NONE" +4,"MCDC","Medium cloud cover","%","UC_NONE" +5,"HCDC","High cloud cover","%","UC_NONE" +6,"CWAT","Cloud water","kg/(m^2)","UC_NONE" +7,"CDCA","Cloud amount","%","UC_NONE" +8,"CDCT","Cloud type","0=Clear; 1=Cumulonimbus; 2=Stratus; 3=Stratocumulus; 4=Cumulus; 5=Altostratus; 6=Nimbostratus; 7=Altocumulus; 8=Cirrostratus; 9=Cirrocumulus; 10=Cirrus; 11=Cumulonimbus - ground-based fog beneath the lowest layer; 12=Stratus - ground-based fog beneath the lowest layer; 13=Stratocumulus - ground-based fog beneath the lowest layer; 14=Cumulus - ground-based fog beneath the lowest layer; 15=Altostratus - ground-based fog beneath the lowest layer; 16=Nimbostratus - ground-based fog beneath the lowest layer; 17=Altocumulus - ground-based fog beneath the lowest layer; 18=Cirrostratus - ground-based fog beneath the lowest layer; 19=Cirrocumulus - ground-based fog beneath the lowest layer; 20=Cirrus - ground-based fog beneath the lowest layer; 21-190=Reserved; 191=Unknown; 192-254=Reserved for local use; 255=Missing","UC_NONE" +9,"TMAXT","Thunderstorm maximum tops","m","UC_NONE" +10,"THUNC","Thunderstorm coverage","0=None; 1=Isolated (1-2%); 2=Few (3-5%); 3=Scattered (6-45%); 4=Numerous (> 45%); 5-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +11,"CDCB","Cloud base","m","UC_M2Feet" +12,"CDCT","Cloud top","m","UC_M2Feet" +13,"CEIL","Ceiling","m","UC_M2Feet" +14,"CDLYR","Non-convective cloud cover","%","UC_NONE" +15,"CWORK","Cloud work function","J/kg","UC_NONE" +16,"CUEFI","Convective cloud efficiency","-","UC_NONE" +17,"TCOND","Total condensate","kg/kg","UC_NONE" +18,"TCOLW","Total column-integrated cloud water","kg/(m^2)","UC_NONE" +19,"TCOLI","Total column-integrated cloud ice","kg/(m^2)","UC_NONE" +20,"TCOLC","Total column-integrated condensate","kg/(m^2)","UC_NONE" +21,"FICE","Ice fraction of total condensate","-","UC_NONE" +22,"CDCC","Cloud cover","%","UC_NONE" +23,"CDCIMR","Cloud ice mixing ratio","kg/kg","UC_NONE" +24,"SUNS","Sunshine","Numeric","UC_NONE" +25,"CBHE","Horizontal extent of cumulonimbus (CB)","%","UC_NONE" +26,"HCONCB","Height of Convective Cloud Base","m","UC_NONE" +27,"HCONCT","Height of Convective Cloud Top","m","UC_NONE" +28,"NCONCD","Number Concentration of Cloud Droplets","1/kg","UC_NONE" +29,"NCCICE","Number Concentration of Cloud Ice","1/kg","UC_NONE" +30,"NDENCD","Number Density of Cloud Droplets","1/(m^3)","UC_NONE" +31,"NDCICE","Number Density of Cloud Ice","1/(m^3)","UC_NONE" +32,"FRACCC","Fraction of Cloud Cover","Numeric","UC_NONE" +33,"SUNSD","SunShine Duration","s","UC_NONE" +34,"SLWTC","Surface Long Wave Effective Total Cloudiness","Numeric","UC_NONE" +35,"SSWTC","Surface Short Wave Effective Total Cloudiness","Numeric","UC_NONE" +36,"FSTRPC","Fraction of Stratiform Precipitation Cover","Proportion","UC_NONE" +37,"FCONPC","Fraction of Convective Precipitation Cover","Proportion","UC_NONE" +38,"MASSDCD","Mass Density of Cloud Droplets","kg/(m^3)","UC_NONE" +39,"MASSDCI","Mass Density of Cloud Ice","kg/(m^3)","UC_NONE" +40,"MDCCWD","Mass Density of Convective Cloud Water Droplets","kg/(m^3)","UC_NONE" +41,"","Reserved","-","UC_NONE" +42,"","Reserved","-","UC_NONE" +43,"","Reserved","-","UC_NONE" +44,"","Reserved","-","UC_NONE" +45,"","Reserved","-","UC_NONE" +46,"","Reserved","-","UC_NONE" +47,"VFRCWD","Volume Fraction of Cloud Water Droplets","Numeric","UC_NONE" +48,"VFRCICE","Volume Fraction of Cloud Ice Particles","Numeric","UC_NONE" +49,"VFRCIW","Volume Fraction of Cloud (Ice and/or Water)","Numeric","UC_NONE" +50,"","Fog","%","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv new file mode 100644 index 00000000..c1793cac --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_0_7.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"PLI","Parcel lifted index (to 500 hPa)","K","UC_NONE" +1,"BLI","Best lifted index (to 500 hPa)","K","UC_NONE" +2,"KX","K index","K","UC_NONE" +3,"KOX","KO index","K","UC_NONE" +4,"TOTALX","Total totals index","K","UC_NONE" +5,"SX","Sweat index","numeric","UC_NONE" +6,"CAPE","Convective available potential energy","J/kg","UC_NONE" +7,"CIN","Convective inhibition","J/kg","UC_NONE" +8,"HLCY","Storm relative helicity","J/kg","UC_NONE" +9,"EHLX","Energy helicity index","numeric","UC_NONE" +10,"LFTX","Surface lifted index","K","UC_NONE" +11,"4LFTX","Best (4-layer) lifted index","K","UC_NONE" +12,"RI","Richardson number","-","UC_NONE" +13,"SHWINX","Showalter Index","K","UC_NONE" +14,"","Reserved","-","UC_NONE" +15,"UPHL","Updraft Helicity","m^2/s^2","UC_NONE" +16,"BLKRN","Bulk Richardson Number","-","UC_NONE" +17,"GRDRN","Gradient Richardson Number","-","UC_NONE" +18,"FLXRN","Flux Richardson Number","-","UC_NONE" +19,"CONAPES","Convective Available Potential Energy Shear","m^2/s^2","UC_NONE" +20,"","Thunderstorm intensity index","0=No thunderstorm occurrence; 1=Weak thunderstorm; 2=Moderate thunderstorm; 3=Severe thunderstorm; 4-254=Reserved; 255=Missing","UC_NONE" +21,"-","Reserved","-","UC_NONE" +22,"-","Reserved","-","UC_NONE" +23,"-","Reserved","-","UC_NONE" +24,"-","Reserved","-","UC_NONE" +25,"-","Reserved","-","UC_NONE" +26,"-","Reserved","-","UC_NONE" +27,"-","Reserved","-","UC_NONE" +28,"-","Reserved","-","UC_NONE" +29,"-","Reserved","-","UC_NONE" +30,"-","Reserved","-","UC_NONE" +31,"-","Reserved","-","UC_NONE" +32,"-","Reserved","-","UC_NONE" +33,"-","Reserved","-","UC_NONE" +34,"-","Reserved","-","UC_NONE" +35,"-","Reserved","-","UC_NONE" +36,"-","Reserved","-","UC_NONE" +37,"-","Reserved","-","UC_NONE" +38,"-","Reserved","-","UC_NONE" +39,"-","Reserved","-","UC_NONE" +40,"-","Reserved","-","UC_NONE" +41,"-","Reserved","-","UC_NONE" +42,"-","Reserved","-","UC_NONE" +43,"-","Reserved","-","UC_NONE" +44,"-","Reserved","-","UC_NONE" +45,"-","Reserved","-","UC_NONE" +46,"-","Reserved","-","UC_NONE" +47,"-","Reserved","-","UC_NONE" +48,"-","Reserved","-","UC_NONE" +49,"-","Reserved","-","UC_NONE" +50,"-","Reserved","-","UC_NONE" +51,"-","Reserved","-","UC_NONE" +52,"-","Reserved","-","UC_NONE" +53,"-","Reserved","-","UC_NONE" +54,"-","Reserved","-","UC_NONE" +55,"-","Reserved","-","UC_NONE" +56,"-","Reserved","-","UC_NONE" +57,"-","Reserved","-","UC_NONE" +58,"-","Reserved","-","UC_NONE" +59,"-","Reserved","-","UC_NONE" +60,"-","Reserved","-","UC_NONE" +61,"-","Reserved","-","UC_NONE" +62,"-","Reserved","-","UC_NONE" +63,"-","Reserved","-","UC_NONE" +64,"-","Reserved","-","UC_NONE" +65,"-","Reserved","-","UC_NONE" +66,"-","Reserved","-","UC_NONE" +67,"-","Reserved","-","UC_NONE" +68,"-","Reserved","-","UC_NONE" +69,"-","Reserved","-","UC_NONE" +70,"-","Reserved","-","UC_NONE" +71,"-","Reserved","-","UC_NONE" +72,"-","Reserved","-","UC_NONE" +73,"-","Reserved","-","UC_NONE" +74,"-","Reserved","-","UC_NONE" +75,"-","Reserved","-","UC_NONE" +76,"-","Reserved","-","UC_NONE" +77,"-","Reserved","-","UC_NONE" +78,"-","Reserved","-","UC_NONE" +79,"-","Reserved","-","UC_NONE" +80,"-","Reserved","-","UC_NONE" +81,"-","Reserved","-","UC_NONE" +82,"-","Reserved","-","UC_NONE" +83,"-","Reserved","-","UC_NONE" +84,"-","Reserved","-","UC_NONE" +85,"-","Reserved","-","UC_NONE" +86,"-","Reserved","-","UC_NONE" +87,"-","Reserved","-","UC_NONE" +88,"-","Reserved","-","UC_NONE" +89,"-","Reserved","-","UC_NONE" +90,"-","Reserved","-","UC_NONE" +91,"-","Reserved","-","UC_NONE" +92,"-","Reserved","-","UC_NONE" +93,"-","Reserved","-","UC_NONE" +94,"-","Reserved","-","UC_NONE" +95,"-","Reserved","-","UC_NONE" +96,"-","Reserved","-","UC_NONE" +97,"-","Reserved","-","UC_NONE" +98,"-","Reserved","-","UC_NONE" +99,"-","Reserved","-","UC_NONE" +100,"-","Reserved","-","UC_NONE" +101,"-","Reserved","-","UC_NONE" +102,"-","Reserved","-","UC_NONE" +103,"-","Reserved","-","UC_NONE" +104,"-","Reserved","-","UC_NONE" +105,"-","Reserved","-","UC_NONE" +106,"-","Reserved","-","UC_NONE" +107,"-","Reserved","-","UC_NONE" +108,"-","Reserved","-","UC_NONE" +109,"-","Reserved","-","UC_NONE" +110,"-","Reserved","-","UC_NONE" +111,"-","Reserved","-","UC_NONE" +112,"-","Reserved","-","UC_NONE" +113,"-","Reserved","-","UC_NONE" +114,"-","Reserved","-","UC_NONE" +115,"-","Reserved","-","UC_NONE" +116,"-","Reserved","-","UC_NONE" +117,"-","Reserved","-","UC_NONE" +118,"-","Reserved","-","UC_NONE" +119,"-","Reserved","-","UC_NONE" +120,"-","Reserved","-","UC_NONE" +121,"-","Reserved","-","UC_NONE" +122,"-","Reserved","-","UC_NONE" +123,"-","Reserved","-","UC_NONE" +124,"-","Reserved","-","UC_NONE" +125,"-","Reserved","-","UC_NONE" +126,"-","Reserved","-","UC_NONE" +127,"-","Reserved","-","UC_NONE" +128,"-","Reserved","-","UC_NONE" +129,"-","Reserved","-","UC_NONE" +130,"-","Reserved","-","UC_NONE" +131,"-","Reserved","-","UC_NONE" +132,"-","Reserved","-","UC_NONE" +133,"-","Reserved","-","UC_NONE" +134,"-","Reserved","-","UC_NONE" +135,"-","Reserved","-","UC_NONE" +136,"-","Reserved","-","UC_NONE" +137,"-","Reserved","-","UC_NONE" +138,"-","Reserved","-","UC_NONE" +139,"-","Reserved","-","UC_NONE" +140,"-","Reserved","-","UC_NONE" +141,"-","Reserved","-","UC_NONE" +142,"-","Reserved","-","UC_NONE" +143,"-","Reserved","-","UC_NONE" +144,"-","Reserved","-","UC_NONE" +145,"-","Reserved","-","UC_NONE" +146,"-","Reserved","-","UC_NONE" +147,"-","Reserved","-","UC_NONE" +148,"-","Reserved","-","UC_NONE" +149,"-","Reserved","-","UC_NONE" +150,"-","Reserved","-","UC_NONE" +151,"-","Reserved","-","UC_NONE" +152,"-","Reserved","-","UC_NONE" +153,"-","Reserved","-","UC_NONE" +154,"-","Reserved","-","UC_NONE" +155,"-","Reserved","-","UC_NONE" +156,"-","Reserved","-","UC_NONE" +157,"-","Reserved","-","UC_NONE" +158,"-","Reserved","-","UC_NONE" +159,"-","Reserved","-","UC_NONE" +160,"-","Reserved","-","UC_NONE" +161,"-","Reserved","-","UC_NONE" +162,"-","Reserved","-","UC_NONE" +163,"-","Reserved","-","UC_NONE" +164,"-","Reserved","-","UC_NONE" +165,"-","Reserved","-","UC_NONE" +166,"-","Reserved","-","UC_NONE" +167,"-","Reserved","-","UC_NONE" +168,"-","Reserved","-","UC_NONE" +169,"-","Reserved","-","UC_NONE" +170,"-","Reserved","-","UC_NONE" +171,"-","Reserved","-","UC_NONE" +172,"-","Reserved","-","UC_NONE" +173,"-","Reserved","-","UC_NONE" +174,"-","Reserved","-","UC_NONE" +175,"-","Reserved","-","UC_NONE" +176,"-","Reserved","-","UC_NONE" +177,"-","Reserved","-","UC_NONE" +178,"-","Reserved","-","UC_NONE" +179,"-","Reserved","-","UC_NONE" +180,"-","Reserved","-","UC_NONE" +181,"-","Reserved","-","UC_NONE" +182,"-","Reserved","-","UC_NONE" +183,"-","Reserved","-","UC_NONE" +184,"-","Reserved","-","UC_NONE" +185,"-","Reserved","-","UC_NONE" +186,"-","Reserved","-","UC_NONE" +187,"-","Reserved","-","UC_NONE" +188,"-","Reserved","-","UC_NONE" +189,"-","Reserved","-","UC_NONE" +190,"-","Reserved","-","UC_NONE" +191,"-","Reserved","-","UC_NONE" +192,"LFTX","Surface Lifted Index","K","UC_NONE" +193,"4LFTX","Best (4 layer) Lifted Index","K","UC_NONE" +194,"RI","Richardson Number","Numeric","UC_NONE" +195,"CWDI","Convective Weather Detection Index","-","UC_NONE" +196,"UVI","Ultra Violet Index","W/m^2","UC_NONE" +197,"UPHL","Updraft Helicity","m^2/s^2","UC_NONE" +198,"LAI","Leaf Area Index","Numeric","UC_NONE" +199,"MXUPHL","Hourly Maximum of Updraft Helicity over Layer 2km to 5 km AGL","m^2/s^2","UC_NONE" +200,"MNUPHL","Hourly Minimum of Updraft Helicity","m^2/s^2","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv new file mode 100644 index 00000000..31a83499 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"WVSP1","Wave spectra (1)","-","UC_NONE" +1,"WVSP2","Wave spectra (2)","-","UC_NONE" +2,"WVSP3","Wave spectra (3)","-","UC_NONE" +3,"HTSGW","Significant height of combined wind waves and swell","m","UC_M2Feet" +4,"WVDIR","Direction of wind waves","Degree true","UC_NONE" +5,"WVHGT","Significant height of wind waves","m","UC_M2Feet" +6,"WVPER","Mean period of wind waves","s","UC_NONE" +7,"SWDIR","Direction of swell waves","Degree true","UC_NONE" +8,"SWELL","Significant height of swell waves","m","UC_NONE" +9,"SWPER","Mean period of swell waves","s","UC_NONE" +10,"DIRPW","Primary wave direction","Degree true","UC_NONE" +11,"PERPW","Primary wave mean period","s","UC_NONE" +12,"DIRSW","Secondary wave direction","Degree true","UC_NONE" +13,"PERSW","Secondary wave mean period","s","UC_NONE" +14,"WWSDIR","Direction of Combined Wind Waves and Swell","Degree true","UC_NONE" +15,"MWSPER","Mean Period of Combined Wind Waves and Swell","s","UC_NONE" +16,"CDWW","Coefficient of Drag With Waves","-","UC_NONE" +17,"FRICV","Friction Velocity","m/s","UC_NONE" +18,"WSTR","Wave Stress","N/(m^2)","UC_NONE" +19,"NWSTR","Normalised Waves Stress","-","UC_NONE" +20,"MSSW","Mean Square Slope of Waves","-","UC_NONE" +21,"USSD","U-component Surface Stokes Drift","m/s","UC_NONE" +22,"VSSD","V-component Surface Stokes Drift","m/s","UC_NONE" +23,"PMAXWH","Period of Maximum Individual Wave Height","s","UC_NONE" +24,"MAXWH","Maximum Individual Wave Height","m","UC_NONE" +25,"IMWF","Inverse Mean Wave Frequency","s","UC_NONE" +26,"IMFWW","Inverse Mean Frequency of The Wind Waves","s","UC_NONE" +27,"IMFTSW","Inverse Mean Frequency of The Total Swell","s","UC_NONE" +28,"MZWPER","Mean Zero-Crossing Wave Period","s","UC_NONE" +29,"MZPWW","Mean Zero-Crossing Period of The Wind Waves","s","UC_NONE" +30,"MZPTSW","Mean Zero-Crossing Period of The Total Swell","s","UC_NONE" +31,"WDIRW","Wave Directional Width","-","UC_NONE" +32,"DIRWWW","Directional Width of The Wind Waves","-","UC_NONE" +33,"DIRWTS","Directional Width of The Total Swell","-","UC_NONE" +34,"PWPER","Peak Wave Period","s","UC_NONE" +35,"PPERWW","Peak Period of The Wind Waves","s","UC_NONE" +36,"PPERTS","Peak Period of The Total Swell","s","UC_NONE" +37,"ALTWH","Altimeter Wave Height","m","UC_NONE" +38,"ALCWH","Altimeter Corrected Wave Height","m","UC_NONE" +39,"ALRRC","Altimeter Range Relative Correction","-","UC_NONE" +40,"MNWSOW","10 Metre Neutral Wind Speed Over Waves","m/s","UC_NONE" +41,"MWDIRW","10 Metre Wind Direction Over Waves","Degree true","UC_NONE" +42,"WESP","Wave Energy Spectrum","s/((m^2)*rad)","UC_NONE" +43,"KSSEW","Kurtosis of The Sea Surface Elevation Due to Waves","-","UC_NONE" +44,"BENINX","Benjamin-Feir Index","-","UC_NONE" +45,"SPFTR","Spectral Peakedness Factor","1/s","UC_NONE" +46,"","Peak wave direction","deg","UC_NONE" +47,"","Significant wave height of first swell partition","m","UC_NONE" +48,"","Significant wave height of second swell partition","m","UC_NONE" +49,"","Significant wave height of third swell partition","m","UC_NONE" +50,"","Mean wave period of first swell partition","s","UC_NONE" +51,"","Mean wave period of second swell partition","s","UC_NONE" +52,"","Mean wave period of third swell partition","s","UC_NONE" +53,"","Mean wave direction of first swell partition","deg","UC_NONE" +54,"","Mean wave direction of second swell partition","deg","UC_NONE" +55,"","Mean wave direction of third swell partition","deg","UC_NONE" +56,"","Wave directional width of first swell partition","-","UC_NONE" +57,"","Wave directional width of second swell partition","-","UC_NONE" +58,"","Wave directional width of third swell partition","-","UC_NONE" +59,"","Wave frequency width of first swell partition","-","UC_NONE" +60,"","Wave frequency width of second swell partition","-","UC_NONE" +61,"","Wave frequency width of third swell partition","-","UC_NONE" +62,"","Wave frequency width","-","UC_NONE" +63,"","Frequency width of wind waves","-","UC_NONE" +64,"","Frequency width of total swell","-","UC_NONE" +65,"","Peak wave period of first swell partition","s","UC_NONE" +66,"","Peak wave period of second swell partition","s","UC_NONE" +67,"","Peak wave period of third swell partition","s","UC_NONE" +68,"","Peak wave direction of first swell partition","degree true","UC_NONE" +69,"","Peak wave direction of second swell partition","degree true","UC_NONE" +70,"","Peak wave direction of third swell partition","degree true","UC_NONE" +71,"","Peak direction of wind waves","degree true","UC_NONE" +72,"","Peak direction of total swell","degree true","UC_NONE" +73,"","Whitecap fraction","fraction","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv new file mode 100644 index 00000000..a98bd659 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"DIRC","Current direction","Degree true","UC_NONE" +1,"SPC","Current speed","m/s","UC_NONE" +2,"UOGRD","u-component of current","m/s","UC_NONE" +3,"VOGRD","v-component of current","m/s","UC_NONE" +4,"RIPCOP","Rip Current Occurrence Probability","%","UC_NONE" +5,"","Eastward current","m s-1","UC_NONE" +6,"","Northward current","m s-1","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv new file mode 100644 index 00000000..c44844d0 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_191.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"TSEC","Seconds prior to initial reference time (defined in Section 1)","s","UC_NONE" +1,"MOSF","Meridonal Overturning Stream Function","m^3/s","UC_NONE" +2,"","Reserved","-","UC_NONE" +3,"DSLOBS","Days Since Last Observation","d","UC_NONE" +4,"","Barotropic stream function","m3 s-1","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv new file mode 100644 index 00000000..39f52d80 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"ICEC","Ice cover","Proportion","UC_NONE" +1,"ICETK","Ice thinkness","m","UC_NONE" +2,"DICED","Direction of ice drift","Degree true","UC_NONE" +3,"SICED","Speed of ice drift","m/s","UC_NONE" +4,"UICE","u-component of ice drift","m/s","UC_NONE" +5,"VICE","v-component of ice drift","m/s","UC_NONE" +6,"ICEG","Ice growth rate","m/s","UC_NONE" +7,"ICED","Ice divergence","1/s","UC_NONE" +8,"ICET","Ice temperature","K","UC_NONE" +9,"ICEPRS","Module of Ice Internal Pressure","Pa*m","UC_NONE" +10,"ZVCICEP","Zonal Vector Component of Vertically Integrated Ice Internal Pressure","Pa*m","UC_NONE" +11,"MVCICEP","Meridional Vector Component of Vertically Integrated Ice Internal Pressure","Pa*m","UC_NONE" +12,"CICES","Compressive Ice Strength","N/m","UC_NONE" +13,"","Snow temperature (over sea ice)","K","UC_NONE" +14,"","Albedo","Numeric","UC_NONE" +15,"","Sea ice volume per unit area","m3 m-2","UC_NONE" +16,"","Snow volume over sea ice per unit area","m3 m-2","UC_NONE" +17,"","Sea ice heat content","J m-2","UC_NONE" +18,"","Snow over sea ice heat content","J m-2","UC_NONE" +19,"","Ice freeboard thickness","m","UC_NONE" +20,"","Ice melt pond fraction","fraction","UC_NONE" +21,"","Ice melt pond depth","m","UC_NONE" +22,"","Ice melt pond volume per unit area","m3 m-2","UC_NONE" +23,"","Sea ice fraction tendency due to parameterization","s-1","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv new file mode 100644 index 00000000..702aab68 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"WTMP","Water temperature","K","UC_NONE" +1,"DSLM","Deviation of sea level from mean","m","UC_NONE" +2,"CH","Heat Exchange Coefficient","","UC_NONE" +3,"","Practical salinity","Numeric","UC_NONE" +4,"","Downward heat flux","W m-2","UC_NONE" +5,"","Eastward surface stress","N m-2","UC_NONE" +6,"","Northward surface stress","N m-2","UC_NONE" +7,"","x-component surface stress","N m-2","UC_NONE" +8,"","y-component surface stress","N m-2","UC_NONE" +9,"","Thermosteric change in sea surface height","m","UC_NONE" +10,"","Halosteric change in sea surface height","m","UC_NONE" +11,"","Steric change in sea surface height","m","UC_NONE" +12,"","Sea salt flux","kg m-2 s-1","UC_NONE" +13,"","Net upward water flux","kg m-2 s-1","UC_NONE" +14,"","Eastward surface water velocity","m s-1","UC_NONE" +15,"","Northward surface water velocity","m s-1","UC_NONE" +16,"","x-component of surface water velocity","m s-1","UC_NONE" +17,"","y-component of surface water velocity","m s-1","UC_NONE" +18,"","Heat flux correction","W m-2","UC_NONE" +19,"","Sea surface height tendency due to parameterization","m s-1","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv new file mode 100644 index 00000000..d661b864 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_10_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"MTHD","Main thermocline depth","m","UC_NONE" +1,"MTHA","Main thermocline anomaly","m","UC_NONE" +2,"TTHDP","Transient thermocline depth","m","UC_NONE" +3,"SALTY","Salinity","kg/kg","UC_NONE" +4,"OVHD","Ocean Vertical Heat Diffusivity","m^2/s","UC_NONE" +5,"OVSD","Ocean Vertical Salt Diffusivity","m^2/s","UC_NONE" +6,"OVMD","Ocean Vertical Momentum Diffusivity","m^2/s","UC_NONE" +7,"BATHY","Bathymetry","m","UC_NONE" +8,"","Reserved","-","UC_NONE" +9,"","Reserved","-","UC_NONE" +10,"","Reserved","-","UC_NONE" +11,"SFSALP","Shape Factor With Respect To Salinity Profile","","UC_NONE" +12,"SFTMPP","Shape Factor With Respect To Temperature Profile In Thermocline","","UC_NONE" +13,"ACWSRD","Attenuation Coefficient Of Water With Respect to Solar Radiation","1/m","UC_NONE" +14,"WDEPTH","Water Depth","m","UC_NONE" +15,"WTMPSS","Water Temperature","K","UC_NONE" +16,"","Water density (rho)","kg m-3","UC_NONE" +17,"","Water density anomaly (sigma)","kg m-3","UC_NONE" +18,"","Water potential temperature (theta)","K","UC_NONE" +19,"","Water potential density (rho theta)","kg m-3","UC_NONE" +20,"","Water potential density anomaly (sigma theta)","kg m-3","UC_NONE" +21,"","Practical salinity","Numeric","UC_NONE" +22,"","Water column-integrated heat content","J m-2","UC_NONE" +23,"","Eastward water velocity","m s-1","UC_NONE" +24,"","Northward water velocity","m s-1","UC_NONE" +25,"","x-component water velocity","m s-1","UC_NONE" +26,"","y-component water velocity","m s-1","UC_NONE" +27,"","Upward water velocity","m s-1","UC_NONE" +28,"","Vertical eddy diffusivity","m2 s-1","UC_NONE" +29,"","Bottom pressure equivalent height","m","UC_NONE" +30,"","Fresh water flux into sea water from rivers","kg m-2 s-1","UC_NONE" +31,"","Fresh water flux correction","kg m-2 s-1","UC_NONE" +32,"","Virtual salt flux into sea water","g kg-1 m-2 s-1","UC_NONE" +33,"","Virtual salt flux correction","g kg-1 m-2 s-1","UC_NONE" +34,"","Sea water temperature tendency due to Newtonian relaxation","K s-1","UC_NONE" +35,"","Sea water salinity tendency due to Newtonian relaxation","g kg-1 s-1","UC_NONE" +36,"","Sea water temperature tendency due to parameterization","K s-1","UC_NONE" +37,"","Sea water salinity tendency due to parameterization","g kg-1 s-1","UC_NONE" +38,"","Eastward sea water velocity tendency due to parameterization","m-2 s-1","UC_NONE" +39,"","Northward sea water velocity tendency due to parameterization","m-2 s-1","UC_NONE" +40,"","Sea water temperature tendency due to direct bias correction","K s-1","UC_NONE" +41,"","Sea water salinity tendency due to direct bias correction","g kg-1 s-1","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv new file mode 100644 index 00000000..97dfcee8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"FFLDG","Flash flood guidance","kg/(m^2)","UC_NONE" +1,"FFLDRO","Flash flood runoff","kg/(m^2)","UC_NONE" +2,"RSSC","Remotely sensed snow cover","0-49=Reserved; 50=No-snow/no-cloud; 51-99=Reserved; 100=Clouds; 101-249=Reserved; 250=Snow; 251-254=Reserved for local use; 255=Missing","UC_NONE" +3,"ESCT","Elevation of snow covered terrain","0-90=Elevation in increments of 100 m; 91-253=Reserved; 254=Clouds; 255=Missing","UC_NONE" +4,"SWEPON","Snow water equivalent percent of normal","%","UC_NONE" +5,"BGRUN","Baseflow-groundwater runoff","kg/(m^2)","UC_NONE" +6,"SSRUN","Storm surface runoff","kg/(m^2)","UC_NONE" +7,"","Discharge from rivers or streams","m3/s","UC_NONE" +8,"","Groundwater upper storage","kg m-2","UC_NONE" +9,"","Groundwater lower storage","kg m-2","UC_NONE" +10,"","Side flow into river channel","m3 s-1 m-1","UC_NONE" +11,"","River storage of water","m3","UC_NONE" +12,"","Floodplain storage of water","m3","UC_NONE" +13,"","Depth of water on soil surface","kg m-2","UC_NONE" +14,"","Upstream accumulated precipitation","kg m-2","UC_NONE" +15,"","Upstream accumulated snow melt","kg m-2","UC_NONE" +16,"","Percolation rate","kg m-2 s-1","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv new file mode 100644 index 00000000..46d8db1a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"CPPOP","Conditional percent precipitation amount fractile for an overall period","kg/(m^2)","UC_NONE" +1,"PPOSP","Percent precipitation in a sub-period of an overall period","%","UC_NONE" +2,"PoP","Probability of 0.01 inch of precipitation","%","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv new file mode 100644 index 00000000..2accdbb4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_1_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Water depth","m","UC_NONE" +1,"","Water temperature","K","UC_NONE" +2,"","Water fraction","Proportion","UC_NONE" +3,"","Sediment thickness","m","UC_NONE" +4,"","Sediment temperature","K","UC_NONE" +5,"","Ice thickness","m","UC_NONE" +6,"","Ice temperature","K","UC_NONE" +7,"","Ice cover","Proportion","UC_NONE" +8,"","Land cover (0 = water, 1 = land)","Proportion","UC_NONE" +9,"","Shape factor with respect to salinity profile","-","UC_NONE" +10,"","Shape factor with respect to temperature profile in thermocline","-","UC_NONE" +11,"","Attenuation coefficient of water with respect to solar radiation","/m","UC_NONE" +12,"","Salinity","kg/kg","UC_NONE" +13,"","Cross-sectional area of flow in channel","m2","UC_NONE" +14,"","Snow temperature","K","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv new file mode 100644 index 00000000..c9c7c8f4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Universal thermal climate index","K","UC_NONE" +1,"","Mean radiant temperature","K","UC_NONE" +2,"","Wet-bulb globe temperature","K","UC_NONE" +3,"","Globe temperature","K","UC_NONE" +4,"","Humidex","K","UC_NONE" +5,"","Effective temperature","K","UC_NONE" +6,"","Normal effective temperature","K","UC_NONE" +7,"","Standard effective temperature","K","UC_NONE" +8,"","Physiological equivalent temperature","K","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv new file mode 100644 index 00000000..7979fbe8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Malaria cases","Fraction","UC_NONE" +1,"","Malaria circumsporozoite protein rate","Fraction","UC_NONE" +2,"","Plasmodium falciparum entomological inoculation rate","Bites per day per person","UC_NONE" +3,"","Human bite rate by anopheles vectors","Bites per day per person","UC_NONE" +4,"","Malaria immunity","Fraction","UC_NONE" +5,"","Falciparum parasite rates","Fraction","UC_NONE" +6,"","Detectable falciparum parasite ratio (after day 10)","Fraction","UC_NONE" +7,"","Anopheles vector to host ratio","Fraction","UC_NONE" +8,"","Anopheles vector number","Number m-2","UC_NONE" +9,"","Fraction of malarial vector reproductive habitat","Fraction","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv new file mode 100644 index 00000000..0af83c95 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_20_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Population density","Person m-2","UC_NONE" +1,"","Reserved","","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv new file mode 100644 index 00000000..cdc202bf --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"LAND","Land cover (1=land; 2=sea)","Proportion","UC_NONE" +1,"SFCR","Surface roughness","m","UC_NONE" +2,"TSOIL","Soil temperature","K","UC_NONE" +3,"SOILM","Soil moisture content","kg/(m^2)","UC_NONE" +4,"VEG","Vegetation","%","UC_NONE" +5,"WATR","Water runoff","kg/(m^2)","UC_NONE" +6,"EVAPT","Evapotranspiration","1/(kg^2 s)","UC_NONE" +7,"MTERH","Model terrain height","m","UC_NONE" +8,"LANDU","Land use","0=Reserved; 1=Urban land; 2=Agriculture; 3=Range land; 4=Deciduous forest; 5=Coniferous forest; 6=Forest/wetland; 7=Water; 8=Wetlands; 9=Desert; 10=Tundra; 11=Ice; 12=Tropical forest; 13=Savannah; 14-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +9,"SOILW","Volumetric soil moisture content","Proportion","UC_NONE" +10,"GFLUX","Ground heat flux","W/(m^2)","UC_NONE" +11,"MSTAV","Moisture availability","%","UC_NONE" +12,"SFEXC","Exchange coefficient","(kg/(m^3))(m/s)","UC_NONE" +13,"CNWAT","Plant canopy surface water","kg/(m^2)","UC_NONE" +14,"BMIXL","Blackadar's mixing length scale","m","UC_NONE" +15,"CCOND","Canopy conductance","m/s","UC_NONE" +16,"RSMIN","Minimal stomatal resistance","s/m","UC_NONE" +17,"WILT","Wilting point","Proportion","UC_NONE" +18,"RCS","Solar parameter in canopy conductance","Proportion","UC_NONE" +19,"RCT","Temperature parameter in canopy conductance","Proportion","UC_NONE" +20,"RCSOL","Soil moisture parameter in canopy conductance","Proportion","UC_NONE" +21,"RCQ","Humidity parameter in canopy conductance","Proportion","UC_NONE" +22,"SOILM","Soil moisture","kg/m^3","UC_NONE" +23,"CISOILW","Column-integrated soil water","kg/m^2","UC_NONE" +24,"HFLUX","Heat flux","W/m^2","UC_NONE" +25,"VSOILM","Volumetric soil moisture","m^3/m^3","UC_NONE" +26,"WILT","Wilting point","kg/m^3","UC_NONE" +27,"VWILTM","Volumetric wilting moisture","m^3/m^3","UC_NONE" +28,"LEAINX","Leaf Area Index","Numeric","UC_NONE" +29,"EVGFC","Evergreen Forest Cover","Proportion","UC_NONE" +30,"DECFC","Deciduous Forest Cover","Proportion","UC_NONE" +31,"NDVINX","Normalized Differential Vegetation Index (NDVI)","Numeric","UC_NONE" +32,"RDVEG","Root Depth of Vegetation","m","UC_NONE" +33,"WROD","Water Runoff and Drainage","kg/(m^2)","UC_NONE" +34,"SFCWRO","Surface Water Runoff","kg/(m^2)","UC_NONE" +35,"TCLASS","Tile Class","0=Reserved; 1=Evergreen broadleaved forest; 2=Deciduous broadleaved closed forest; 3=Deciduous broadleaved open forest; 4=Evergreen needle-leaf forest; 5=Deciduous needle-leaf forest; 6=Mixed leaf trees; 7=Freshwater flooded trees; 8=Saline water flooded trees; 9=Mosaic tree/natural vegetation; 10=Burnt tree cover; 11=Evergreen shrubs closed-open; 12=Deciduous shrubs closed-open; 13=Herbaceous vegetation closed-open; 14=Sparse herbaceous or grass; 15=Flooded shrubs or herbaceous; 16=Cultivated and managed areas; 17=Mosaic crop/tree/natural vegetation; 18=Mosaic crop/shrub/grass; 19=Bare areas; 20=Water; 21=Snow and ice; 22=Artificial surface; 23=Ocean; 24=Irrigated croplands; 25=Rainfed croplands; 26=Mosaic cropland (50-70%) - vegetation (20-50%); 27=Mosaic vegetation (50-70%) - cropland (20-50%); 28=Closed broadleaved evergreen forest; 29=Closed needle-leaved evergreen forest; 30=Open needle-leaved deciduous forest; 31=Mixed broadleaved and needle-leaved forest; 32=Mosaic shrubland (50-70%) - grassland (20-50%); 33=Mosaic grassland (50-70%) - shrubland (20-50%); 34=Closed to open shrubland; 35=Sparse vegetation; 36=Closed to open forest regularly flooded; 37=Closed forest or shrubland permanently flooded; 38=Closed to open grassland regularly flooded; 39=Undefined; 40-32767=Reserved; 32768-=Reserved for local use","UC_NONE" +36,"TFRCT","Tile Fraction","Proportion","UC_NONE" +37,"TPERCT","Tile Percentage","%","UC_NONE" +38,"SOILVIC","Soil Volumetric Ice Content (Water Equivalent) ","m^3/m^3","UC_NONE" +39,"","Evapotranspiration rate","kg m-2 s-1","UC_NONE" +40,"","Potential evapotranspiration rate","kg m-2 s-1","UC_NONE" +41,"","Snow melt rate","kg m-2 s-1","UC_NONE" +42,"","Water runoff and drainage rate","kg m-2 s-1","UC_NONE" +43,"","Drainage direction","0=Reserved; 1=South-west; 2=South; 3=South-east; 4=West; 5=No direction; 6=East; 7=North-west; 8=North; 9=North-east; 10-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +44,"","Upstream area","m2","UC_NONE" +45,"","Wetland cover","Proportion","UC_NONE" +46,"","Wetland type","0=Reserved; 1=Bog; 2=Drained; 3=Fen; 4=Floodplain; 5=Mangrove; 6=Marsh; 7=Rice; 8=Riverine; 9=Salt marsh; 10=Swamp; 11=Upland; 12=Wet tundra; 13-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +47,"","Irrigation cover","Proportion","UC_NONE" +48,"","C4 crop cover","Proportion","UC_NONE" +49,"","C4 grass cover","Proportion","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv new file mode 100644 index 00000000..bf0a81be --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"SOTYP","Soil type","0=Reserved; 1=Sand; 2=Loamy sand; 3=Sandy loam; 4=Silt loam; 5=Organic (redefined); 6=Sandy clay loam; 7=Silt clay loam; 8=Clay loam; 9=Sandy clay; 10=Silty clay; 11=Clay; 12-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +1,"UPLST","Upper layer soil temperature","K","UC_NONE" +2,"UPLSM","Upper layer soil moisture","kg/(m^3)","UC_NONE" +3,"LOWLSM","Lower layer soil moisture","kg/(m^3)","UC_NONE" +4,"BOTLST","Bottom layer soil temperature","K","UC_NONE" +5,"SOILL","Liquid volumetric soil moisture (non-frozen)","Proportion","UC_NONE" +6,"RLYRS","Number of soil layers in root zone","Numeric","UC_NONE" +7,"SMREF","Transpiration stress-onset (soil moisture)","Proportion","UC_NONE" +8,"SMDRY","Direct evaporation cease (soil moisture)","Proportion","UC_NONE" +9,"POROS","Soil porosity","Proportion","UC_NONE" +10,"LIQVSM","Liquid volumetric soil moisture (non-frozen)","m^3/m^3","UC_NONE" +11,"VOLTSO","Volumetric transpiration stress-onset (soil moisture)","m^3/m^3","UC_NONE" +12,"TRANSO","Transpiration stress-onset (soil moisture)","kg/m^3","UC_NONE" +13,"VOLDEC","Volumetric direct evaporation cease (soil moisture)","m^3/m^3","UC_NONE" +14,"DIREC","Direct evaporation cease (soil moisture)","kg/m^3","UC_NONE" +15,"SOILP","Soil porosity","m^3/m^3","UC_NONE" +16,"VSOSM","Volumetric saturation of soil moisture","m^3/m^3","UC_NONE" +17,"SATOSM","Saturation of soil moisture","kg/m^3","UC_NONE" +18,"SOILTMP","Soil Temperature","K","UC_NONE" +19,"SOILMOI","Soil Moisture","kg/(m^3)","UC_NONE" +20,"CISOILM","Column-Integrated Soil Moisture","kg/(m^2)","UC_NONE" +21,"SOILICE","Soil Ice","kg/(m^3)","UC_NONE" +22,"CISICE","Column-Integrated Soil Ice","kg/(m^2)","UC_NONE" +23,"LWSNWP","Liquid Water in Snow Pack","kg/(m^2)","UC_NONE" +24,"FRSTINX","Frost Index","kg/day","UC_NONE" +25,"SNWDEB","Snow Depth at Elevation Bands","kg/(m^2)","UC_NONE" +26,"SHFLX","Soil Heat Flux","W/(m^2)","UC_NONE" +27,"SOILDEP","Soil Depth","m","UC_NONE" +28,"","Snow temperature","K","UC_NONE" +29,"","Ice temperature","K","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv new file mode 100644 index 00000000..7ce05191 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Fire outlook","0=No risk area; 1=Reserved; 2=General thunderstorm risk area; 3=Reserved; 4=Slight risk area; 5=Reserved; 6=Moderate risk area; 7=Reserved; 8=High risk area; 9-10=Reserved; 11=Dry thunderstorm (dry lightning) risk area; 12-13=Reserved; 14=Critical risk area; 15-17=Reserved; 18=Extremely critical risk area; 19-254=Reserved; 255=Missing","UC_NONE" +1,"","Fire outlook due to dry thunderstorm","0=No risk area; 1=Reserved; 2=General thunderstorm risk area; 3=Reserved; 4=Slight risk area; 5=Reserved; 6=Moderate risk area; 7=Reserved; 8=High risk area; 9-10=Reserved; 11=Dry thunderstorm (dry lightning) risk area; 12-13=Reserved; 14=Critical risk area; 15-17=Reserved; 18=Extremely critical risk area; 19-254=Reserved; 255=Missing","UC_NONE" +2,"","Haines index","Numeric","UC_NONE" +3,"","Fire burned area","%","UC_NONE" +4,"","Fosberg index","Numeric","UC_NONE" +5,"","Forest Fire Weather Index (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +6,"","Fine Fuel Moisture Code (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +7,"","Duff Moisture Code (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +8,"","Drought Code (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +9,"","Initial Fire Spread Index (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +10,"","Fire Buildup Index (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +11,"","Fire Daily Severity Rating (as defined by the Canadian Forest Service)","Numeric","UC_NONE" +12,"","Keetch-Byram drought index","Numeric","UC_NONE" +13,"","Drought factor (as defined by the Australian forest service )","Numeric","UC_NONE" +14,"","Rate of spread (as defined by the Australian forest service )","m/s","UC_NONE" +15,"","Fire danger index (as defined by the Australian forest service )","Numeric","UC_NONE" +16,"","Spread component (as defined by the US Forest Service National Fire Danger Rating System)","Numeric","UC_NONE" +17,"","Burning index (as defined by the US Forest Service National Fire Danger Rating System)","Numeric","UC_NONE" +18,"","Ignition component (as defined by the US Forest Service National Fire Danger Rating System)","%","UC_NONE" +19,"","Energy release component (as defined by the US Forest Service National Fire Danger Rating System)","Joule/m2","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv new file mode 100644 index 00000000..c6409cf7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_5.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Glacier cover","Proportion","UC_NONE" +1,"","Glacier temperature","K","UC_NONE" +2,"","Reserved","","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv new file mode 100644 index 00000000..a3fca888 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_2_6.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Urban cover","Proportion","UC_NONE" +1,"","Road cover","Proportion","UC_NONE" +2,"","Building cover","Proportion","UC_NONE" +3,"","Building height","m","UC_NONE" +4,"","Vertical-to-horizontal area fraction","m2 m-2","UC_NONE" +5,"","Standard deviation of building height","m","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv new file mode 100644 index 00000000..ff829d8a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"SRAD","Scaled radiance","Numeric","UC_NONE" +1,"SALBEDO","Scaled albedo","Numeric","UC_NONE" +2,"SBTMP","Scaled brightness temperature","Numeric","UC_NONE" +3,"SPWAT","Scaled precipitable water","Numeric","UC_NONE" +4,"SLFTI","Scaled lifted index","Numeric","UC_NONE" +5,"SCTPRES","Scaled cloud top pressure","Numeric","UC_NONE" +6,"SSTMP","Scaled skin temperature","Numeric","UC_NONE" +7,"CLOUDM","Cloud mask","0=Clear over water; 1=Clear over land; 2=Cloud; 3=No data; 4-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +8,"PIXST","Pixel scene type","0=No scene identified; 1=Green needle-leafed forest; 2=Green broad-leafed forest; 3=Deciduous needle-leafed forest; 4=Deciduous broad-leafed forest; 5=Deciduous mixed forest; 6=Closed shrub-land; 7=Open shrub-land; 8=Woody savannah; 9=Savannah; 10=Grassland; 11=Permanent wetland; 12=Cropland; 13=Urban; 14=Vegetation/crops; 15=Permanent snow/ice; 16=Barren desert; 17=Water bodies; 18=Tundra; 19=Warm liquid water cloud; 20=Supercooled liquid water cloud; 21=Mixed-phase cloud; 22=Optically thin ice cloud; 23=Optically thick ice cloud; 24=Multilayered cloud; 25-96=Reserved; 97=Snow/ice on land; 98=Snow/ice on water; 99=Sun-glint; 100=General cloud; 101=Low cloud/fog/stratus; 102=Low cloud/stratocumulus; 103=Low cloud/unknown type; 104=Medium cloud/nimbostratus; 105=Medium cloud/altostratus; 106=Medium cloud/unknown type; 107=High cloud/cumulus; 108=High cloud/cirrus; 109=High cloud/unknown; 110=Unknown cloud type; 111=Single layer water cloud; 112=Single layer ice cloud; 113-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +9,"FIREDI","Fire detection indicator","0=No fire detected; 1=Possible fire detected; 2=Probable fire detected; 3=Missing","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv new file mode 100644 index 00000000..0a6d634c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"ESTP","Estimated precipitation","kg/(m^2)","UC_NONE" +1,"IRRATE","Instantaneous rain rate","kg/(m^2*s)","UC_NONE" +2,"CTOPH","Cloud top height","kg/(m^2*s)","UC_NONE" +3,"CTOPHQI","Cloud top height quality indicator","0=Nominal cloud top height quality; 1=Fog in segment; 2=Poor quality height estimation; 3=Fog in segment and poor quality height estimation; 4-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +4,"ESTUGRD","Estimated u component of wind","m/s","UC_NONE" +5,"ESTVGRD","Estimated v component of wind","m/s","UC_NONE" +6,"NPIXU","Number of pixels used","Numeric","UC_NONE" +7,"SOLZA","Solar zenith angle","Degree","UC_NONE" +8,"RAZA","Relative azimuth angle","Degree","UC_NONE" +9,"RFL06","Reflectance in 0.6 micron channel","%","UC_NONE" +10,"RFL08","Reflectance in 0.8 micron channel","%","UC_NONE" +11,"RFL16","Reflectance in 1.6 micron channel","%","UC_NONE" +12,"RFL39","Reflectance in 3.9 micron channel","%","UC_NONE" +13,"ATMDIV","Atmospheric divergence","1/s","UC_NONE" +14,"CBTMP","Cloudy Brightness Temperature","K","UC_NONE" +15,"CSBTMP","Clear Sky Brightness Temperature","K","UC_NONE" +16,"CLDRAD","Cloudy Radiance (with respect to wave number)","W/(m*sr)","UC_NONE" +17,"CSKYRAD","Clear Sky Radiance (with respect to wave number)","W/(m*sr)","UC_NONE" +18,"","Reserved","-","UC_NONE" +19,"WINDS","Wind Speed","m/s","UC_NONE" +20,"AOT06","Aerosol Optical Thickness at 0.635 µm","","UC_NONE" +21,"AOT08","Aerosol Optical Thickness at 0.810 µm","","UC_NONE" +22,"AOT16","Aerosol Optical Thickness at 1.640 µm","","UC_NONE" +23,"ANGCOE","Angstrom Coefficient","","UC_NONE" +24,"","Reserved","-","UC_NONE" +25,"","Reserved","-","UC_NONE" +26,"","Reserved","-","UC_NONE" +27,"BRFLF","Bidirectional Reflecance Factor","Numeric","UC_NONE" +28,"SPBRT","Brightness Temperature","K","UC_NONE" +29,"SRAD","Scaled Radiance","Numeric","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates","Numeric","UC_NONE" +99,"","Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates","kg m-2 s-1","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv new file mode 100644 index 00000000..c0c107e0 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_2.csv @@ -0,0 +1,28 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Clear sky probability","%","UC_NONE" +1,"","Cloud top temperature","K","UC_NONE" +2,"","Cloud top pressure","Pa","UC_NONE" +3,"","Cloud type","0=No scene identified; 1=Green needle-leafed forest; 2=Green broad-leafed forest; 3=Deciduous needle-leafed forest; 4=Deciduous broad-leafed forest; 5=Deciduous mixed forest; 6=Closed shrub-land; 7=Open shrub-land; 8=Woody savannah; 9=Savannah; 10=Grassland; 11=Permanent wetland; 12=Cropland; 13=Urban; 14=Vegetation/crops; 15=Permanent snow/ice; 16=Barren desert; 17=Water bodies; 18=Tundra; 19=Warm liquid water cloud; 20=Supercooled liquid water cloud; 21=Mixed-phase cloud; 22=Optically thin ice cloud; 23=Optically thick ice cloud; 24=Multilayered cloud; 25-96=Reserved; 97=Snow/ice on land; 98=Snow/ice on water; 99=Sun-glint; 100=General cloud; 101=Low cloud/fog/stratus; 102=Low cloud/stratocumulus; 103=Low cloud/unknown type; 104=Medium cloud/nimbostratus; 105=Medium cloud/altostratus; 106=Medium cloud/unknown type; 107=High cloud/cumulus; 108=High cloud/cirrus; 109=High cloud/unknown; 110=Unknown cloud type; 111=Single layer water cloud; 112=Single layer ice cloud; 113-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +4,"","Cloud phase","0=No scene identified; 1=Green needle-leafed forest; 2=Green broad-leafed forest; 3=Deciduous needle-leafed forest; 4=Deciduous broad-leafed forest; 5=Deciduous mixed forest; 6=Closed shrub-land; 7=Open shrub-land; 8=Woody savannah; 9=Savannah; 10=Grassland; 11=Permanent wetland; 12=Cropland; 13=Urban; 14=Vegetation/crops; 15=Permanent snow/ice; 16=Barren desert; 17=Water bodies; 18=Tundra; 19=Warm liquid water cloud; 20=Supercooled liquid water cloud; 21=Mixed-phase cloud; 22=Optically thin ice cloud; 23=Optically thick ice cloud; 24=Multilayered cloud; 25-96=Reserved; 97=Snow/ice on land; 98=Snow/ice on water; 99=Sun-glint; 100=General cloud; 101=Low cloud/fog/stratus; 102=Low cloud/stratocumulus; 103=Low cloud/unknown type; 104=Medium cloud/nimbostratus; 105=Medium cloud/altostratus; 106=Medium cloud/unknown type; 107=High cloud/cumulus; 108=High cloud/cirrus; 109=High cloud/unknown; 110=Unknown cloud type; 111=Single layer water cloud; 112=Single layer ice cloud; 113-191=Reserved; 192-254=Reserved for local use; 255=Missing","UC_NONE" +5,"","Cloud optical depth","Numeric","UC_NONE" +6,"","Cloud particle effective radius","m","UC_NONE" +7,"","Cloud liquid water path","kg m-2","UC_NONE" +8,"","Cloud ice water path","kg m-2","UC_NONE" +9,"","Cloud albedo","Numeric","UC_NONE" +10,"","Cloud emissivity","Numeric","UC_NONE" +11,"","Effective absorption optical depth ratio","Numeric","UC_NONE" +30,"","Measurement cost","Numeric","UC_NONE" +31,"","Upper layer cloud optical depth","Numeric","UC_NONE" +32,"","Upper layer cloud top pressure","Pa","UC_NONE" +33,"","Upper layer cloud effective radius","m","UC_NONE" +34,"","Error in upper layer cloud optical depth","Numeric","UC_NONE" +35,"","Error in upper layer cloud top pressure","Pa","UC_NONE" +36,"","Error in upper layer cloud effective radius","m","UC_NONE" +37,"","Lower layer cloud optical depth","Numeric","UC_NONE" +38,"","Lower layer cloud top pressure","Pa","UC_NONE" +39,"","Error in lower layer cloud optical depth","Numeric","UC_NONE" +40,"","Error in lower layer cloud top pressure","Pa","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv new file mode 100644 index 00000000..b8411888 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_3.csv @@ -0,0 +1,8 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Probability of encountering marginal visual flight rule conditions","%","UC_NONE" +1,"","Probability of encountering low instrument flight rule conditions","%","UC_NONE" +2,"","Probability of encountering instrument flight rule conditions","%","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv new file mode 100644 index 00000000..d64a3158 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_4.csv @@ -0,0 +1,14 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Volcanic ash probability","%","UC_NONE" +1,"","Volcanic ash cloud top temperature","K","UC_NONE" +2,"","Volcanic ash cloud top pressure","Pa","UC_NONE" +3,"","Volcanic ash cloud top height","m","UC_NONE" +4,"","Volcanic ash cloud emissivity","Numeric","UC_NONE" +5,"","Volcanic ash effective absorption optical depth ratio","Numeric","UC_NONE" +6,"","Volcanic ash cloud optical depth","Numeric","UC_NONE" +7,"","Volcanic ash column density","kg m-2","UC_NONE" +8,"","Volcanic ash particle effective radius","m","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv new file mode 100644 index 00000000..82b95c73 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_5.csv @@ -0,0 +1,11 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Interface sea-surface temperature","K","UC_NONE" +1,"","Skin sea-surface temperature","K","UC_NONE" +2,"","Sub-skin sea-surface temperature","K","UC_NONE" +3,"","Foundation sea-surface temperature","K","UC_NONE" +4,"","Estimated bias between sea-surface temperature and standard","K","UC_NONE" +5,"","Estimated standard deviation between sea surface temperature and standard","K","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv new file mode 100644 index 00000000..28027d24 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_3_6.csv @@ -0,0 +1,11 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Global solar irradiance","W m-2","UC_NONE" +1,"","Global solar exposure","J m-2","UC_NONE" +2,"","Direct solar irradiance","W m-2","UC_NONE" +3,"","Direct solar exposure","J m-2","UC_NONE" +4,"","Diffuse solar irradiance","W m-2","UC_NONE" +5,"","Diffuse solar exposure","J m-2","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv new file mode 100644 index 00000000..10b7db2e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_0.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Temperature","K","UC_NONE" +1,"","Electron temperature","K","UC_NONE" +2,"","Proton temperature","K","UC_NONE" +3,"","Ion temperature","K","UC_NONE" +4,"","Parallel temperature","K","UC_NONE" +5,"","Perpendicular temperature","K","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv new file mode 100644 index 00000000..fc029574 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_1.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Velocity magnitude (speed)","m s-1","UC_NONE" +1,"","1st vector component of velocity (coordinate system dependent)","m s-1","UC_NONE" +2,"","2nd vector component of velocity (coordinate system dependent)","m s-1","UC_NONE" +3,"","3rd vector component of velocity (coordinate system dependent)","m s-1","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv new file mode 100644 index 00000000..a10160b7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_10.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Scintillation index (sigma phi)","rad","UC_NONE" +1,"","Scintillation index S4","Numeric","UC_NONE" +2,"","Rate of change of TEC index (ROTI)","TECU/min","UC_NONE" +3,"","Disturbance ionosphere index spatial gradient (DIXSG)","Numeric","UC_NONE" +4,"","Along arc TEC rate (AATR)","TECU/min","UC_NONE" +5,"","Kp","Numeric","UC_NONE" +6,"","Equatorial disturbance storm time index (Dst)","nT","UC_NONE" +7,"","Auroral electrojet (AE)","nT","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv new file mode 100644 index 00000000..42629399 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_2.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Particle number density","m-3","UC_NONE" +1,"","Electron density","m-3","UC_NONE" +2,"","Proton density","m-3","UC_NONE" +3,"","Ion density","m-3","UC_NONE" +4,"","Vertical total electron content","TECU","UC_NONE" +5,"","HF absorption frequency","Hz","UC_NONE" +6,"","HF absorption","dB","UC_NONE" +7,"","Spread F","m","UC_NONE" +8,"","h'F","m","UC_NONE" +9,"","Critical frequency","Hz","UC_NONE" +10,"","Maximal usable frequency (MUF)","Hz","UC_NONE" +11,"","Peak height (hm)","m","UC_NONE" +12,"","Peak density (Nm)","m-3","UC_NONE" +13,"","Equivalent slab thickness (tau)","km","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv new file mode 100644 index 00000000..8a69646b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_3.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Magnetic field magnitude","T","UC_NONE" +1,"","1st vector component of magnetic field","T","UC_NONE" +2,"","2nd vector component of magnetic field","T","UC_NONE" +3,"","3rd vector component of magnetic field","T","UC_NONE" +4,"","Electric field magnitude","V m-1","UC_NONE" +5,"","1st vector component of electric field","V m-1","UC_NONE" +6,"","2nd vector component of electric field","V m-1","UC_NONE" +7,"","3rd vector component of electric field","V m-1","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv new file mode 100644 index 00000000..d4c9da1c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_4.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Proton flux (differential)","(m2 s sr eV)-1","UC_NONE" +1,"","Proton flux (integral)","(m2 s sr )-1","UC_NONE" +2,"","Electron flux (differential)","(m2 s sr eV)-1","UC_NONE" +3,"","Electron flux (integral)","(m2 s sr)-1","UC_NONE" +4,"","Heavy ion flux (differential)","(m2 s sr eV/nuc)-1","UC_NONE" +5,"","Heavy ion flux (integral)","(m2 s sr)-1","UC_NONE" +6,"","Cosmic ray neutron flux","h-1","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv new file mode 100644 index 00000000..7d5c1dd9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_5.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Amplitude","dB","UC_NONE" +1,"","Phase","rad","UC_NONE" +2,"","Frequency","Hz","UC_NONE" +3,"","Wavelength","m","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv new file mode 100644 index 00000000..1ed55d2c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_6.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Integrated solar irradiance","W m-2","UC_NONE" +1,"","Solar X-ray flux (XRS long)","W m-2","UC_NONE" +2,"","Solar X-ray flux (XRS short)","W m-2","UC_NONE" +3,"","Solar EUV irradiance","W m-2","UC_NONE" +4,"","Solar spectral irradiance","W m-2 nm-1","UC_NONE" +5,"","F10.7","W m-2 Hz-1","UC_NONE" +6,"","Solar radio emissions","W m-2 Hz-1","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv new file mode 100644 index 00000000..68f7481a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_7.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Limb intensity","J m-2 s-1","UC_NONE" +1,"","Disk intensity","J m-2 s-1","UC_NONE" +2,"","Disk intensity day","J m-2 s-1","UC_NONE" +3,"","Disk intensity night","J m-2 s-1","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv new file mode 100644 index 00000000..037a6bb8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_8.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","X-ray radiance","W sr-1 m-2","UC_NONE" +1,"","EUV radiance","W sr-1 m-2","UC_NONE" +2,"","H-alpha radiance","W sr-1 m-2","UC_NONE" +3,"","White light radiance","W sr-1 m-2","UC_NONE" +4,"","CaII-K radiance","W sr-1 m-2","UC_NONE" +5,"","White light coronagraph radiance","W sr-1 m-2","UC_NONE" +6,"","Heliospheric radiance","W sr-1 m-2","UC_NONE" +7,"","Thematic mask","Numeric","UC_NONE" +8,"","Solar induced chlorophyll fluorescence","W m-2 sr-1 m-1","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv new file mode 100644 index 00000000..09642c26 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_4_9.csv @@ -0,0 +1,261 @@ +"subcat","short_name","name","unit","unit_conv" +-4,"######################################################################################################","#","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#","#" +-1,"######################################################################################################","#","#","#" +0,"","Pedersen conductivity","S m-1","UC_NONE" +1,"","Hall conductivity","S m-1","UC_NONE" +2,"","Parallel conductivity","S m-1","UC_NONE" +3,"","Reserved","","UC_NONE" +4,"","Reserved","","UC_NONE" +5,"","Reserved","","UC_NONE" +6,"","Reserved","","UC_NONE" +7,"","Reserved","","UC_NONE" +8,"","Reserved","","UC_NONE" +9,"","Reserved","","UC_NONE" +10,"","Reserved","","UC_NONE" +11,"","Reserved","","UC_NONE" +12,"","Reserved","","UC_NONE" +13,"","Reserved","","UC_NONE" +14,"","Reserved","","UC_NONE" +15,"","Reserved","","UC_NONE" +16,"","Reserved","","UC_NONE" +17,"","Reserved","","UC_NONE" +18,"","Reserved","","UC_NONE" +19,"","Reserved","","UC_NONE" +20,"","Reserved","","UC_NONE" +21,"","Reserved","","UC_NONE" +22,"","Reserved","","UC_NONE" +23,"","Reserved","","UC_NONE" +24,"","Reserved","","UC_NONE" +25,"","Reserved","","UC_NONE" +26,"","Reserved","","UC_NONE" +27,"","Reserved","","UC_NONE" +28,"","Reserved","","UC_NONE" +29,"","Reserved","","UC_NONE" +30,"","Reserved","","UC_NONE" +31,"","Reserved","","UC_NONE" +32,"","Reserved","","UC_NONE" +33,"","Reserved","","UC_NONE" +34,"","Reserved","","UC_NONE" +35,"","Reserved","","UC_NONE" +36,"","Reserved","","UC_NONE" +37,"","Reserved","","UC_NONE" +38,"","Reserved","","UC_NONE" +39,"","Reserved","","UC_NONE" +40,"","Reserved","","UC_NONE" +41,"","Reserved","","UC_NONE" +42,"","Reserved","","UC_NONE" +43,"","Reserved","","UC_NONE" +44,"","Reserved","","UC_NONE" +45,"","Reserved","","UC_NONE" +46,"","Reserved","","UC_NONE" +47,"","Reserved","","UC_NONE" +48,"","Reserved","","UC_NONE" +49,"","Reserved","","UC_NONE" +50,"","Reserved","","UC_NONE" +51,"","Reserved","","UC_NONE" +52,"","Reserved","","UC_NONE" +53,"","Reserved","","UC_NONE" +54,"","Reserved","","UC_NONE" +55,"","Reserved","","UC_NONE" +56,"","Reserved","","UC_NONE" +57,"","Reserved","","UC_NONE" +58,"","Reserved","","UC_NONE" +59,"","Reserved","","UC_NONE" +60,"","Reserved","","UC_NONE" +61,"","Reserved","","UC_NONE" +62,"","Reserved","","UC_NONE" +63,"","Reserved","","UC_NONE" +64,"","Reserved","","UC_NONE" +65,"","Reserved","","UC_NONE" +66,"","Reserved","","UC_NONE" +67,"","Reserved","","UC_NONE" +68,"","Reserved","","UC_NONE" +69,"","Reserved","","UC_NONE" +70,"","Reserved","","UC_NONE" +71,"","Reserved","","UC_NONE" +72,"","Reserved","","UC_NONE" +73,"","Reserved","","UC_NONE" +74,"","Reserved","","UC_NONE" +75,"","Reserved","","UC_NONE" +76,"","Reserved","","UC_NONE" +77,"","Reserved","","UC_NONE" +78,"","Reserved","","UC_NONE" +79,"","Reserved","","UC_NONE" +80,"","Reserved","","UC_NONE" +81,"","Reserved","","UC_NONE" +82,"","Reserved","","UC_NONE" +83,"","Reserved","","UC_NONE" +84,"","Reserved","","UC_NONE" +85,"","Reserved","","UC_NONE" +86,"","Reserved","","UC_NONE" +87,"","Reserved","","UC_NONE" +88,"","Reserved","","UC_NONE" +89,"","Reserved","","UC_NONE" +90,"","Reserved","","UC_NONE" +91,"","Reserved","","UC_NONE" +92,"","Reserved","","UC_NONE" +93,"","Reserved","","UC_NONE" +94,"","Reserved","","UC_NONE" +95,"","Reserved","","UC_NONE" +96,"","Reserved","","UC_NONE" +97,"","Reserved","","UC_NONE" +98,"","Reserved","","UC_NONE" +99,"","Reserved","","UC_NONE" +100,"","Reserved","","UC_NONE" +101,"","Reserved","","UC_NONE" +102,"","Reserved","","UC_NONE" +103,"","Reserved","","UC_NONE" +104,"","Reserved","","UC_NONE" +105,"","Reserved","","UC_NONE" +106,"","Reserved","","UC_NONE" +107,"","Reserved","","UC_NONE" +108,"","Reserved","","UC_NONE" +109,"","Reserved","","UC_NONE" +110,"","Reserved","","UC_NONE" +111,"","Reserved","","UC_NONE" +112,"","Reserved","","UC_NONE" +113,"","Reserved","","UC_NONE" +114,"","Reserved","","UC_NONE" +115,"","Reserved","","UC_NONE" +116,"","Reserved","","UC_NONE" +117,"","Reserved","","UC_NONE" +118,"","Reserved","","UC_NONE" +119,"","Reserved","","UC_NONE" +120,"","Reserved","","UC_NONE" +121,"","Reserved","","UC_NONE" +122,"","Reserved","","UC_NONE" +123,"","Reserved","","UC_NONE" +124,"","Reserved","","UC_NONE" +125,"","Reserved","","UC_NONE" +126,"","Reserved","","UC_NONE" +127,"","Reserved","","UC_NONE" +128,"","Reserved","","UC_NONE" +129,"","Reserved","","UC_NONE" +130,"","Reserved","","UC_NONE" +131,"","Reserved","","UC_NONE" +132,"","Reserved","","UC_NONE" +133,"","Reserved","","UC_NONE" +134,"","Reserved","","UC_NONE" +135,"","Reserved","","UC_NONE" +136,"","Reserved","","UC_NONE" +137,"","Reserved","","UC_NONE" +138,"","Reserved","","UC_NONE" +139,"","Reserved","","UC_NONE" +140,"","Reserved","","UC_NONE" +141,"","Reserved","","UC_NONE" +142,"","Reserved","","UC_NONE" +143,"","Reserved","","UC_NONE" +144,"","Reserved","","UC_NONE" +145,"","Reserved","","UC_NONE" +146,"","Reserved","","UC_NONE" +147,"","Reserved","","UC_NONE" +148,"","Reserved","","UC_NONE" +149,"","Reserved","","UC_NONE" +150,"","Reserved","","UC_NONE" +151,"","Reserved","","UC_NONE" +152,"","Reserved","","UC_NONE" +153,"","Reserved","","UC_NONE" +154,"","Reserved","","UC_NONE" +155,"","Reserved","","UC_NONE" +156,"","Reserved","","UC_NONE" +157,"","Reserved","","UC_NONE" +158,"","Reserved","","UC_NONE" +159,"","Reserved","","UC_NONE" +160,"","Reserved","","UC_NONE" +161,"","Reserved","","UC_NONE" +162,"","Reserved","","UC_NONE" +163,"","Reserved","","UC_NONE" +164,"","Reserved","","UC_NONE" +165,"","Reserved","","UC_NONE" +166,"","Reserved","","UC_NONE" +167,"","Reserved","","UC_NONE" +168,"","Reserved","","UC_NONE" +169,"","Reserved","","UC_NONE" +170,"","Reserved","","UC_NONE" +171,"","Reserved","","UC_NONE" +172,"","Reserved","","UC_NONE" +173,"","Reserved","","UC_NONE" +174,"","Reserved","","UC_NONE" +175,"","Reserved","","UC_NONE" +176,"","Reserved","","UC_NONE" +177,"","Reserved","","UC_NONE" +178,"","Reserved","","UC_NONE" +179,"","Reserved","","UC_NONE" +180,"","Reserved","","UC_NONE" +181,"","Reserved","","UC_NONE" +182,"","Reserved","","UC_NONE" +183,"","Reserved","","UC_NONE" +184,"","Reserved","","UC_NONE" +185,"","Reserved","","UC_NONE" +186,"","Reserved","","UC_NONE" +187,"","Reserved","","UC_NONE" +188,"","Reserved","","UC_NONE" +189,"","Reserved","","UC_NONE" +190,"","Reserved","","UC_NONE" +191,"","Reserved","","UC_NONE" +192,"","Reserved for local use","","UC_NONE" +193,"","Reserved for local use","","UC_NONE" +194,"","Reserved for local use","","UC_NONE" +195,"","Reserved for local use","","UC_NONE" +196,"","Reserved for local use","","UC_NONE" +197,"","Reserved for local use","","UC_NONE" +198,"","Reserved for local use","","UC_NONE" +199,"","Reserved for local use","","UC_NONE" +200,"","Reserved for local use","","UC_NONE" +201,"","Reserved for local use","","UC_NONE" +202,"","Reserved for local use","","UC_NONE" +203,"","Reserved for local use","","UC_NONE" +204,"","Reserved for local use","","UC_NONE" +205,"","Reserved for local use","","UC_NONE" +206,"","Reserved for local use","","UC_NONE" +207,"","Reserved for local use","","UC_NONE" +208,"","Reserved for local use","","UC_NONE" +209,"","Reserved for local use","","UC_NONE" +210,"","Reserved for local use","","UC_NONE" +211,"","Reserved for local use","","UC_NONE" +212,"","Reserved for local use","","UC_NONE" +213,"","Reserved for local use","","UC_NONE" +214,"","Reserved for local use","","UC_NONE" +215,"","Reserved for local use","","UC_NONE" +216,"","Reserved for local use","","UC_NONE" +217,"","Reserved for local use","","UC_NONE" +218,"","Reserved for local use","","UC_NONE" +219,"","Reserved for local use","","UC_NONE" +220,"","Reserved for local use","","UC_NONE" +221,"","Reserved for local use","","UC_NONE" +222,"","Reserved for local use","","UC_NONE" +223,"","Reserved for local use","","UC_NONE" +224,"","Reserved for local use","","UC_NONE" +225,"","Reserved for local use","","UC_NONE" +226,"","Reserved for local use","","UC_NONE" +227,"","Reserved for local use","","UC_NONE" +228,"","Reserved for local use","","UC_NONE" +229,"","Reserved for local use","","UC_NONE" +230,"","Reserved for local use","","UC_NONE" +231,"","Reserved for local use","","UC_NONE" +232,"","Reserved for local use","","UC_NONE" +233,"","Reserved for local use","","UC_NONE" +234,"","Reserved for local use","","UC_NONE" +235,"","Reserved for local use","","UC_NONE" +236,"","Reserved for local use","","UC_NONE" +237,"","Reserved for local use","","UC_NONE" +238,"","Reserved for local use","","UC_NONE" +239,"","Reserved for local use","","UC_NONE" +240,"","Reserved for local use","","UC_NONE" +241,"","Reserved for local use","","UC_NONE" +242,"","Reserved for local use","","UC_NONE" +243,"","Reserved for local use","","UC_NONE" +244,"","Reserved for local use","","UC_NONE" +245,"","Reserved for local use","","UC_NONE" +246,"","Reserved for local use","","UC_NONE" +247,"","Reserved for local use","","UC_NONE" +248,"","Reserved for local use","","UC_NONE" +249,"","Reserved for local use","","UC_NONE" +250,"","Reserved for local use","","UC_NONE" +251,"","Reserved for local use","","UC_NONE" +252,"","Reserved for local use","","UC_NONE" +253,"","Reserved for local use","","UC_NONE" +254,"","Reserved for local use","","UC_NONE" +255,"","Missing","","UC_NONE" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv new file mode 100644 index 00000000..741b7694 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_Canada.csv @@ -0,0 +1,5 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,4,192,"DSWRF_SFC_0","Downward incident solar flux","W/m^2",UC_NONE +0,4,193,"USWRF_SFC_0","Upward short wave radiative flux","W/m^2",UC_NONE +0,5,192,"DLWRF_SFC_0","Downward Long Wave Radiative Flux","W/m^2",UC_NONE +0,5,193,"ULWRF_0","Outgoing Long Wave Radiative Flux","W/m^2",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv new file mode 100644 index 00000000..1c146001 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_HPC.csv @@ -0,0 +1,2 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,1,192,"HPC-Wx","HPC Code","-",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv new file mode 100644 index 00000000..ff92a003 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_MRMS.csv @@ -0,0 +1,175 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +209,2,0,"NLDN_CG_001min_AvgDensity","CG Average Lightning Density 1-min - NLDN","flashes/km^2/min",UC_NONE +209,2,1,"NLDN_CG_005min_AvgDensity","CG Average Lightning Density 5-min - NLDN","flashes/km^2/min",UC_NONE +209,2,2,"NLDN_CG_015min_AvgDensity","CG Average Lightning Density 15-min - NLDN","flashes/km^2/min",UC_NONE +209,2,3,"NLDN_CG_030min_AvgDensity","CG Average Lightning Density 30-min - NLDN","flashes/km^2/min",UC_NONE +209,2,4,"LightningProbabilityNext30min","Lightning Probability 0-30 minutes - NLDN","%",UC_NONE +209,2,5,"LightningProbabilityNext30minGrid","Lightning Probability 0-30 minutes - NLDN","%",UC_NONE +209,2,6,"LightningProbabilityNext60minGrid","Lightning Probability 0-30 minutes - NLDN","%",UC_NONE +209,2,7,"LightningJumpGrid","Rapid lightning increases and decreases ","non-dim",UC_NONE +209,2,8,"LightningJumpGrid_Max_005min","Rapid lightning increases and decreases over 5-minutes ","non-dim",UC_NONE +209,3,0,"MergedAzShear0to2kmAGL","Azimuth Shear 0-2km AGL","0.001/s",UC_NONE +209,3,1,"MergedAzShear3to6kmAGL","Azimuth Shear 3-6km AGL","0.001/s",UC_NONE +209,3,2,"RotationTrack30min","Rotation Track 0-2km AGL 30-min","0.001/s",UC_NONE +209,3,3,"RotationTrack60min","Rotation Track 0-2km AGL 60-min","0.001/s",UC_NONE +209,3,4,"RotationTrack120min","Rotation Track 0-2km AGL 120-min","0.001/s",UC_NONE +209,3,5,"RotationTrack240min","Rotation Track 0-2km AGL 240-min","0.001/s",UC_NONE +209,3,6,"RotationTrack360min","Rotation Track 0-2km AGL 360-min","0.001/s",UC_NONE +209,3,7,"RotationTrack1440min","Rotation Track 0-2km AGL 1440-min","0.001/s",UC_NONE +209,3,14,"RotationTrackML30min","Rotation Track 3-6km AGL 30-min","0.001/s",UC_NONE +209,3,15,"RotationTrackML60min","Rotation Track 3-6km AGL 60-min","0.001/s",UC_NONE +209,3,16,"RotationTrackML120min","Rotation Track 3-6km AGL 120-min","0.001/s",UC_NONE +209,3,17,"RotationTrackML240min","Rotation Track 3-6km AGL 240-min","0.001/s",UC_NONE +209,3,18,"RotationTrackML360min","Rotation Track 3-6km AGL 360-min","0.001/s",UC_NONE +209,3,19,"RotationTrackML1440min","Rotation Track 3-6km AGL 1440-min","0.001/s",UC_NONE +209,3,26,"SHI","Severe Hail Index","index",UC_NONE +209,3,27,"POSH","Prob of Severe Hail","%",UC_NONE +209,3,28,"MESH","Maximum Estimated Size of Hail (MESH)","mm",UC_NONE +209,3,29,"MESHMax30min","MESH Hail Swath 30-min","mm",UC_NONE +209,3,30,"MESHMax60min","MESH Hail Swath 60-min","mm",UC_NONE +209,3,31,"MESHMax120min","MESH Hail Swath 120-min","mm",UC_NONE +209,3,32,"MESHMax240min","MESH Hail Swath 240-min","mm",UC_NONE +209,3,33,"MESHMax360min","MESH Hail Swath 360-min","mm",UC_NONE +209,3,34,"MESHMax1440min","MESH Hail Swath 1440-min","mm",UC_NONE +209,3,37,"VIL_Max_120min","VIL Swath 120-min","kg/m^2",UC_NONE +209,3,40,"VIL_Max_1440min","VIL Swath 1440-min","kg/m^2",UC_NONE +209,3,41,"VIL","Vertically Integrated Liquid","kg/m^2",UC_NONE +209,3,42,"VIL_Density","Vertically Integrated Liquid Density","g/m^3",UC_NONE +209,3,43,"VII","Vertically Integrated Ice","kg/m^2",UC_NONE +209,3,44,"EchoTop_18","Echo Top - 18 dBZ","km MSL",UC_NONE +209,3,45,"EchoTop_30","Echo Top - 30 dBZ","km MSL",UC_NONE +209,3,46,"EchoTop_50","Echo Top - 50 dBZ","km MSL",UC_NONE +209,3,47,"EchoTop_60","Echo Top - 60 dBZ","km MSL",UC_NONE +209,3,48,"H50AboveM20C","Thickness [50 dBZ top - (-20C)]","km",UC_NONE +209,3,49,"H50Above0C","Thickness [50 dBZ top - 0C]","km",UC_NONE +209,3,50,"H60AboveM20C","Thickness [60 dBZ top - (-20C)]","km",UC_NONE +209,3,51,"H60Above0C","Thickness [60 dBZ top - 0C]","km",UC_NONE +209,3,52,"Reflectivity_0C","Isothermal Reflectivity at 0C","dBZ",UC_NONE +209,3,53,"Reflectivity_-5C","Isothermal Reflectivity at -5C","dBZ",UC_NONE +209,3,54,"Reflectivity_-10C","Isothermal Reflectivity at -10C","dBZ",UC_NONE +209,3,55,"Reflectivity_-15C","Isothermal Reflectivity at -15C","dBZ",UC_NONE +209,3,56,"Reflectivity_-20C","Isothermal Reflectivity at -20C","dBZ",UC_NONE +209,3,57,"ReflectivityAtLowestAltitude","ReflectivityAtLowestAltitude","dBZ",UC_NONE +209,3,58,"MergedReflectivityAtLowestAltitude","Non Quality Controlled Reflectivity At Lowest Altitude","dBZ",UC_NONE +209,4,0,"IRband4","Infrared (E/W blend)","K",UC_NONE +209,4,1,"Visible","Visible (E/W blend)","non-dim",UC_NONE +209,4,2,"WaterVapor","Water Vapor (E/W blend)","K",UC_NONE +209,4,3,"CloudCover","Cloud Cover","K",UC_NONE +209,6,0,"PrecipFlag","Surface Precipitation Type","flag",UC_NONE +209,6,1,"PrecipRate","Radar Precipitation Rate","mm/hr",UC_NONE +209,6,2,"RadarOnly_QPE_01H","Radar precipitation accumulation 1-hour","mm",UC_NONE +209,6,3,"RadarOnly_QPE_03H","Radar precipitation accumulation 3-hour","mm",UC_NONE +209,6,4,"RadarOnly_QPE_06H","Radar precipitation accumulation 6-hour","mm",UC_NONE +209,6,5,"RadarOnly_QPE_12H","Radar precipitation accumulation 12-hour","mm",UC_NONE +209,6,6,"RadarOnly_QPE_24H","Radar precipitation accumulation 24-hour","mm",UC_NONE +209,6,7,"RadarOnly_QPE_48H","Radar precipitation accumulation 48-hour","mm",UC_NONE +209,6,8,"RadarOnly_QPE_72H","Radar precipitation accumulation 72-hour","mm",UC_NONE +209,6,9,"GaugeCorrQPE01H","Local Gauge Bias Corrected Radar Precipitation Accumulation 1-hour","mm",UC_NONE +209,6,10,"GaugeCorrQPE03H","Local Gauge Bias Corrected Radar Precipitation Accumulation 3-hour","mm",UC_NONE +209,6,11,"GaugeCorrQPE06H","Local Gauge Bias Corrected Radar Precipitation Accumulation 6-hour","mm",UC_NONE +209,6,12,"GaugeCorrQPE12H","Local Gauge Bias Corrected Radar Precipitation Accumulation 12-hour","mm",UC_NONE +209,6,13,"GaugeCorrQPE24H","Local Gauge Bias Corrected Radar Precipitation Accumulation 24-hour","mm",UC_NONE +209,6,14,"GaugeCorrQPE48H","Local Gauge Bias Corrected Radar Precipitation Accumulation 48-hour","mm",UC_NONE +209,6,15,"GaugeCorrQPE72H","Local Gauge Bias Corrected Radar Precipitation Accumulation 72-hour","mm",UC_NONE +209,6,16,"GaugeOnlyQPE01H","Gauge Only Precipitation Accumulation 1-hour","mm",UC_NONE +209,6,17,"GaugeOnlyQPE03H","Gauge Only Precipitation Accumulation 3-hour","mm",UC_NONE +209,6,18,"GaugeOnlyQPE06H","Gauge Only Precipitation Accumulation 6-hour","mm",UC_NONE +209,6,19,"GaugeOnlyQPE12H","Gauge Only Precipitation Accumulation 12-hour","mm",UC_NONE +209,6,20,"GaugeOnlyQPE24H","Gauge Only Precipitation Accumulation 24-hour","mm",UC_NONE +209,6,21,"GaugeOnlyQPE48H","Gauge Only Precipitation Accumulation 48-hour","mm",UC_NONE +209,6,22,"GaugeOnlyQPE72H","Gauge Only Precipitation Accumulation 72-hour","mm",UC_NONE +209,6,23,"MountainMapperQPE01H","Mountain Mapper Precipitation Accumulation 1-hour","mm",UC_NONE +209,6,24,"MountainMapperQPE03H","Mountain Mapper Precipitation Accumulation 3-hour","mm",UC_NONE +209,6,25,"MountainMapperQPE06H","Mountain Mapper Precipitation Accumulation 6-hour","mm",UC_NONE +209,6,26,"MountainMapperQPE12H","Mountain Mapper Precipitation Accumulation 12-hour","mm",UC_NONE +209,6,27,"MountainMapperQPE24H","Mountain Mapper Precipitation Accumulation 24-hour","mm",UC_NONE +209,6,28,"MountainMapperQPE48H","Mountain Mapper Precipitation Accumulation 48-hour","mm",UC_NONE +209,6,29,"MountainMapperQPE72H","Mountain Mapper Precipitation Accumulation 72-hour","mm",UC_NONE +209,6,30,"MultiSensor_QPE_01H_Pass1","Multi-sensor accumulation 1-hour (1-hour latency)","mm",UC_NONE +209,6,31,"MultiSensor_QPE_03H_Pass1","Multi-sensor accumulation 3-hour (1-hour latency)","mm",UC_NONE +209,6,32,"MultiSensor_QPE_06H_Pass1","Multi-sensor accumulation 6-hour (1-hour latency)","mm",UC_NONE +209,6,33,"MultiSensor_QPE_12H_Pass1","Multi-sensor accumulation 12-hour (1-hour latency)","mm",UC_NONE +209,6,34,"MultiSensor_QPE_24H_Pass1","Multi-sensor accumulation 24-hour (1-hour latency)","mm",UC_NONE +209,6,35,"MultiSensor_QPE_48H_Pass1","Multi-sensor accumulation 48-hour (1-hour latency)","mm",UC_NONE +209,6,36,"MultiSensor_QPE_72H_Pass1","Multi-sensor accumulation 72-hour (1-hour latency)","mm",UC_NONE +209,6,37,"MultiSensor_QPE_01H_Pass2","Multi-sensor accumulation 1-hour (2-hour latency)","mm",UC_NONE +209,6,38,"MultiSensor_QPE_03H_Pass2","Multi-sensor accumulation 3-hour (2-hour latency)","mm",UC_NONE +209,6,39,"MultiSensor_QPE_06H_Pass2","Multi-sensor accumulation 6-hour (2-hour latency)","mm",UC_NONE +209,6,40,"MultiSensor_QPE_12H_Pass2","Multi-sensor accumulation 12-hour (2-hour latency)","mm",UC_NONE +209,6,41,"MultiSensor_QPE_24H_Pass2","Multi-sensor accumulation 24-hour (2-hour latency)","mm",UC_NONE +209,6,42,"MultiSensor_QPE_48H_Pass2","Multi-sensor accumulation 48-hour (2-hour latency)","mm",UC_NONE +209,6,43,"MultiSensor_QPE_72H_Pass2","Multi-sensor accumulation 72-hour (2-hour latency)","mm",UC_NONE +209,6,44,"SyntheticPrecipRateID","Method IDs for blended single and dual-pol derived precip rates ","flag",UC_NONE +209,6,45,"RadarOnly_QPE_15M","Radar precipitation accumulation 15-minute","mm",UC_NONE +209,7,0,"Model_SurfaceTemp","Model Surface temperature","C",UC_NONE +209,7,1,"Model_WetBulbTemp","Model Surface wet bulb temperature","C",UC_NONE +209,7,2,"WarmRainProbability","Probability of warm rain","%",UC_NONE +209,7,3,"Model_0degC_Height","Model Freezing Level Height","m MSL",UC_NONE +209,7,4,"BrightBandTopHeight","Brightband Top Height","m AGL",UC_NONE +209,7,5,"BrightBandBottomHeight","Brightband Bottom Height","m AGL",UC_NONE +209,8,0,"RadarQualityIndex","Radar Quality Index","non-dim",UC_NONE +209,8,1,"GaugeInflIndex_01H_Pass1","Gauge Influence Index for 1-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,2,"GaugeInflIndex_03H_Pass1","Gauge Influence Index for 3-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,3,"GaugeInflIndex_06H_Pass1","Gauge Influence Index for 6-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,4,"GaugeInflIndex_12H_Pass1","Gauge Influence Index for 12-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,5,"GaugeInflIndex_24H_Pass1","Gauge Influence Index for 24-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,6,"GaugeInflIndex_48H_Pass1","Gauge Influence Index for 48-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,7,"GaugeInflIndex_72H_Pass1","Gauge Influence Index for 72-hour QPE (1-hour latency)","non-dim",UC_NONE +209,8,8,"SeamlessHSR","Seamless Hybrid Scan Reflectivity with VPR correction","dBZ",UC_NONE +209,8,9,"SeamlessHSRHeight","Height of Seamless Hybrid Scan Reflectivity","km AGL",UC_NONE +209,8,10,"RadarAccumulationQualityIndex_01H","Radar 1-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,11,"RadarAccumulationQualityIndex_03H","Radar 3-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,12,"RadarAccumulationQualityIndex_06H","Radar 6-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,13,"RadarAccumulationQualityIndex_12H","Radar 12-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,14,"RadarAccumulationQualityIndex_24H","Radar 24-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,15,"RadarAccumulationQualityIndex_48H","Radar 48-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,16,"RadarAccumulationQualityIndex_72H","Radar 72-hour QPE Accumulation Quality","non-dim",UC_NONE +209,8,17,"GaugeInflIndex_01H_Pass2","Gauge Influence Index for 1-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,18,"GaugeInflIndex_03H_Pass2","Gauge Influence Index for 3-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,19,"GaugeInflIndex_06H_Pass2","Gauge Influence Index for 6-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,20,"GaugeInflIndex_12H_Pass2","Gauge Influence Index for 12-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,21,"GaugeInflIndex_24H_Pass2","Gauge Influence Index for 24-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,22,"GaugeInflIndex_48H_Pass2","Gauge Influence Index for 48-hour QPE (2-hour latency)","non-dim",UC_NONE +209,8,23,"GaugeInflIndex_72H_Pass2","Gauge Influence Index for 72-hour QPE (2-hour latency)","non-dim",UC_NONE +209,9,0,"MergedReflectivityQC","3D Reflectivty Mosaic - 33 CAPPIS (500-19000m)","dBZ",UC_NONE +209,9,1,"CONUSPlusMergedReflectivityQC","All Radar 3D Reflectivity Mosaic - 33 CAPPIS (500-19000m)","dBZ",UC_NONE +209,9,3,"MergedRhoHV,5-min","33 levels (one file per level)","-99",UC_NONE +209,9,4,"MergedZdr,5-min","33 levels (one file per level)","-99",UC_NONE +209,10,0,"MergedReflectivityQCComposite","Composite Reflectivity Mosaic (optimal method)","dBZ",UC_NONE +209,10,1,"HeightCompositeReflectivity","Height of Composite Reflectivity Mosaic (optimal method)","m MSL",UC_NONE +209,10,2,"LowLevelCompositeReflectivity","Low-Level Composite Reflectivity Mosaic (0-4km)","dBZ",UC_NONE +209,10,3,"HeightLowLevelCompositeReflectivity","Height of Low-Level Composite Reflectivity Mosaic (0-4km)","m MSL",UC_NONE +209,10,4,"LayerCompositeReflectivity_Low","Layer Composite Reflectivity Mosaic 0-24kft (low altitude)","dBZ",UC_NONE +209,10,5,"LayerCompositeReflectivity_High","Layer Composite Reflectivity Mosaic 24-60 kft (highest altitude)","dBZ",UC_NONE +209,10,6,"LayerCompositeReflectivity_Super","Layer Composite Reflectivity Mosaic 33-60 kft (super high altitude)","dBZ",UC_NONE +209,10,7,"CREF_1HR_MAX","Composite Reflectivity Hourly Maximum","dBZ",UC_NONE +209,10,8,"ReflectivityMaxAboveM10C","Maximum Reflectivity at -10 deg C height and above","dBZ",UC_NONE +209,10,9,"LayerCompositeReflectivity_ANC","Layer Composite Reflectivity Mosaic (2-4.5km) (for ANC)","dBZ",UC_NONE +209,10,10,"BREF_1HR_MAX","Base Reflectivity Hourly Maximum","dBZ",UC_NONE +209,11,0,"MergedBaseReflectivityQC","Base Reflectivity Mosaic (optimal method)","dBZ",UC_NONE +209,11,1,"MergedReflectivityComposite","Raw Composite Reflectivity Mosaic (max ref)","dBZ",UC_NONE +209,11,2,"MergedReflectivityQComposite","Composite Reflectivity Mosaic (max ref)","dBZ",UC_NONE +209,11,3,"MergedBaseReflectivity","Raw Base Reflectivity Mosaic (optimal method)","dBZ",UC_NONE +209,12,0,"FLASH_CREST_MAXUNITSTREAMFLOW","FLASH QPE-CREST Unit Streamflow","m^3/s/km^2",UC_NONE +209,12,1,"FLASH_CREST_MAXSTREAMFLOW","FLASH QPE-CREST Streamflow","m^3/s",UC_NONE +209,12,2,"FLASH_CREST_MAXSOILSAT","FLASH QPE-CREST Soil Saturation","%",UC_NONE +209,12,4,"FLASH_SAC_MAXUNITSTREAMFLOW","FLASH QPE-SAC Unit Streamflow","m^3/s/km^2",UC_NONE +209,12,5,"FLASH_SAC_MAXSTREAMFLOW","FLASH QPE-SAC Streamflow","m^3/s",UC_NONE +209,12,6,"FLASH_SAC_MAXSOILSAT","FLASH QPE-SAC Soil Saturation","%",UC_NONE +209,12,14,"FLASH_QPE_ARI30M","FLASH QPE Average Recurrence Interval 30-min","years",UC_NONE +209,12,15,"FLASH_QPE_ARI01H","FLASH QPE Average Recurrence Interval 01H","years",UC_NONE +209,12,16,"FLASH_QPE_ARI03H","FLASH QPE Average Recurrence Interval 03H","years",UC_NONE +209,12,17,"FLASH_QPE_ARI06H","FLASH QPE Average Recurrence Interval 06H","years",UC_NONE +209,12,18,"FLASH_QPE_ARI12H","FLASH QPE Average Recurrence Interval 12H","years",UC_NONE +209,12,19,"FLASH_QPE_ARI24H","FLASH QPE Average Recurrence Interval 24H","years",UC_NONE +209,12,20,"FLASH_QPE_ARIMAX","FLASH QPE Average Recurrence Interval Maximum","years",UC_NONE +209,12,26,"FLASH_QPE_FFG01H","FLASH QPE-to-FFG Ratio 01H","non-dim",UC_NONE +209,12,27,"FLASH_QPE_FFG03H","FLASH QPE-to-FFG Ratio 03H","non-dim",UC_NONE +209,12,28,"FLASH_QPE_FFG06H","FLASH QPE-to-FFG Ratio 06H","non-dim",UC_NONE +209,12,29,"FLASH_QPE_FFGMAX","FLASH QPE-to-FFG Ratio Maximum","non-dim",UC_NONE +209,12,39,"FLASH_HP_MAXUNITSTREAMFLOW","FLASH QPE-Hydrophobic Unit Streamflow","m^3/s/km^2",UC_NONE +209,12,40,"FLASH_HP_MAXSTREAMFLOW","FLASH QPE-Hydrophobic Streamflow","m^3/s",UC_NONE +209,13,0,"ANC_ConvectiveLikelihood","Likelihood of convection over the next 01H","non-dim",UC_NONE +209,13,1,"ANC_FinalForecast","01H reflectivity forecast","dBZ",UC_NONE +209,14,0,"LVL3_HREET","Level III High Resolution Enhanced Echo Top mosaic","kft",UC_NONE +209,14,1,"LVL3_HighResVIL","Level III High Resouion VIL mosaic","kg/m^2",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv new file mode 100644 index 00000000..27a76aa2 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NCEP.csv @@ -0,0 +1,401 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,0,192,"SNOHF","Snow Phase Change Heat Flux","W/(m^2)",UC_NONE +0,0,193,"TTRAD","Temperature tendency by all radiation","K/s",UC_NONE +0,0,194,"REV","Relative Error Variance","-",UC_NONE +0,0,195,"LRGHR","Large Scale Condensate Heating rate","K/s",UC_NONE +0,0,196,"CNVHR","Deep Convective Heating rate","K/s",UC_NONE +0,0,197,"THFLX","Total Downward Heat Flux at Surface","W/(m^2)",UC_NONE +0,0,198,"TTDIA","Temperature Tendency By All Physics","K/s",UC_NONE +0,0,199,"TTPHY","Temperature Tendency By Non-radiation Physics","K/s",UC_NONE +0,0,200,"TSD1D","Standard Dev. of IR Temp. over 1x1 deg. area","K",UC_NONE +0,0,201,"SHAHR","Shallow Cnvective Heating rate","K/s",UC_NONE +0,0,202,"VDFHR","Vertical Diffusion Heating rate","K/s",UC_NONE +0,0,203,"THZ0","Potential temperature at top of viscus sublayer","K",UC_NONE +0,0,204,"TCHP","Tropical Cyclone Heat Potential","J/(m^2*K)",UC_NONE +0,1,192,"CRAIN","Categorical Rain","0=no; 1=yes",UC_NONE +0,1,193,"CFRZR","Categorical Freezing Rain","0=no; 1=yes",UC_NONE +0,1,194,"CICEP","Categorical Ice Pellets","0=no; 1=yes",UC_NONE +0,1,195,"CSNOW","Categorical Snow","0=no; 1=yes",UC_NONE +0,1,196,"CPRAT","Convective Precipitation Rate","kg/(m^2*s)",UC_NONE +0,1,197,"MCONV","Horizontal Moisture Divergence","kg/(kg*s)",UC_NONE +0,1,198,"MINRH","Minimum Relative Humidity","%",UC_NONE +0,1,199,"PEVAP","Potential Evaporation","kg/(m^2)",UC_NONE +0,1,200,"PEVPR","Potential Evaporation Rate","W/(m^2)",UC_NONE +0,1,201,"SNOWC","Snow Cover","%",UC_NONE +0,1,202,"FRAIN","Rain Fraction of Total Liquid Water","-",UC_NONE +0,1,203,"RIME","Rime Factor","-",UC_NONE +0,1,204,"TCOLR","Total Column Integrated Rain","kg/(m^2)",UC_NONE +0,1,205,"TCOLS","Total Column Integrated Snow","kg/(m^2)",UC_NONE +0,1,206,"TIPD","Total Icing Potential Diagnostic","-",UC_NONE +0,1,207,"NCIP","Number concentration for ice particles","-",UC_NONE +0,1,208,"SNOT","Snow temperature","K",UC_NONE +0,1,209,"TCLSW","Total column-integrated supercooled liquid water","kg/(m^2)",UC_NONE +0,1,210,"TCOLM","Total column-integrated melting ice","kg/(m^2)",UC_NONE +0,1,211,"EMNP","Evaporation - Precipitation","cm/day",UC_NONE +0,1,212,"SBSNO","Sublimination (evaporation from snow)","W/(m^2)",UC_NONE +0,1,213,"CNVMR","Deep Convective Moistening Rate","kg/(kg*s)",UC_NONE +0,1,214,"SHAMR","Shallow Convective Moistening Rate","kg/(kg*s)",UC_NONE +0,1,215,"VDFMR","Vertical Diffusion Moistening Rate","kg/(kg*s)",UC_NONE +0,1,216,"CONDP","Condensation Pressure of Parcali Lifted From Indicate Surface","Pa",UC_NONE +0,1,217,"LRGMR","Large scale moistening rate","kg/(kg/s)",UC_NONE +0,1,218,"QZ0","Specific humidity at top of viscous sublayer","kg/kg",UC_NONE +0,1,219,"QMAX","Maximum specific humidity at 2m","kg/kg",UC_NONE +0,1,220,"QMIN","Minimum specific humidity at 2m","kg/kg",UC_NONE +0,1,221,"ARAIN","Liquid precipitation (rainfall)","kg/(m^2)",UC_NONE +0,1,222,"SNOWT","Snow temperature, depth-avg","K",UC_NONE +0,1,223,"APCPN","Total precipitation (nearest grid point)","kg/(m^2)",UC_NONE +0,1,224,"ACPCPN","Convective precipitation (nearest grid point)","kg/(m^2)",UC_NONE +0,1,225,"FRZR","Freezing rain","kg/(m^2)",UC_NONE +0,1,226,"Wx","Weather String","-",UC_NONE +0,1,227,"FROZR","Frozen Rain","kg/(m^2)",UC_NONE +0,1,228,"FICEAC","Flat Ice Accumulation (FRAM)","kg/(m^2)",UC_NONE +0,1,229,"LICEAC","Line Ice Accumulation (FRAM)","kg/(m^2)",UC_NONE +0,1,230,"SLACC","Sleet Accumulation","kg/(m^2)",UC_NONE +0,1,231,"PPINDX","Precipitation Potential Index","%",UC_NONE +0,1,232,"PROBCIP","Probability Cloud Ice Present","%",UC_NONE +0,1,233,"SNOWLR","Snow Liquid ratio","kg/kg",UC_NONE +0,1,241,"TSNOW","Total Snow","kg/(m^2)",UC_NONE +0,1,242,"RHPW","Relative Humidity with Respect to Precipitable Water","%",UC_NONE +0,2,192,"VWSH","Vertical speed sheer","1/s",UC_NONE +0,2,193,"MFLX","Horizontal Momentum Flux","N/(m^2)",UC_NONE +0,2,194,"USTM","U-Component Storm Motion","m/s",UC_NONE +0,2,195,"VSTM","V-Component Storm Motion","m/s",UC_NONE +0,2,196,"CD","Drag Coefficient","-",UC_NONE +0,2,197,"FRICV","Frictional Velocity","m/s",UC_NONE +0,2,198,"LAUV","Latitude of U Wind Component of Velocity","deg",UC_NONE +0,2,199,"LOUV","Longitude of U Wind Component of Velocity","deg",UC_NONE +0,2,200,"LAVV","Latitude of V Wind Component of Velocity","deg",UC_NONE +0,2,201,"LOVV","Longitude of V Wind Component of Velocity","deg",UC_NONE +0,2,202,"LAPP","Latitude of Presure Point","deg",UC_NONE +0,2,203,"LOPP","Longitude of Presure Point","deg",UC_NONE +0,2,204,"VEDH","Vertical Eddy Diffusivity Heat exchange","m^2/s",UC_NONE +0,2,205,"COVMZ","Covariance between Meridional and Zonal Components of the wind","m^2/s^2",UC_NONE +0,2,206,"COVTZ","Covariance between Temperature and Zonal Components of the wind","K*m/s",UC_NONE +0,2,207,"COVTM","Covariance between Temperature and Meridional Components of the wind","K*m/s",UC_NONE +0,2,208,"VDFUA","Vertical Diffusion Zonal Acceleration","m/s^2",UC_NONE +0,2,209,"VDFVA","Vertical Diffusion Meridional Acceleration","m/s^2",UC_NONE +0,2,210,"GWDU","Gravity wave drag zonal acceleration","m/s^2",UC_NONE +0,2,211,"GWDV","Gravity wave drag meridional acceleration","m/s^2",UC_NONE +0,2,212,"CNVU","Convective zonal momentum mixing acceleration","m/s^2",UC_NONE +0,2,213,"CNVV","Convective meridional momentum mixing acceleration","m/s^2",UC_NONE +0,2,214,"WTEND","Tendency of vertical velocity","m/s^2",UC_NONE +0,2,215,"OMGALF","Omega (Dp/Dt) divide by density","K",UC_NONE +0,2,216,"CNGWDU","Convective Gravity wave drag zonal acceleration","m/s^2",UC_NONE +0,2,217,"CNGWDV","Convective Gravity wave drag meridional acceleration","m/s^2",UC_NONE +0,2,218,"LMV","Velocity point model surface","-",UC_NONE +0,2,219,"PVMWW","Potential vorticity (mass-weighted)","1/(s/m)",UC_NONE +0,2,220,"MAXUVV","Hourly Maximum of Downward Vertical Velocity in the lowest 400hPa","m/s",UC_NONE +0,2,221,"MAXDVV","Hourly Maximum of Downward Vertical Velocity","m/s",UC_NONE +0,2,222,"MAXUW","U Component of Hourly Maximum 10m Wind Speed","m/s",UC_NONE +0,2,223,"MAXVW","V Component of Hourly Maximum 10m Wind Speed","m/s",UC_NONE +0,2,224,"VRATE","Ventilation Rate","m^2/s",UC_NONE +0,2,225,"TRWSPD","Transport Wind Speed","m/s",UC_NONE +0,2,226,"TRWDIR","Transport Wind Direction","deg",UC_NONE +0,2,227,"TOA10","Earliest Reasonable Arrival Time (10% exceedance)","s",UC_NONE +0,2,228,"TOA50","Most Likely Arrival Time (50% exceedance)","s",UC_NONE +0,2,229,"TOD50","Most Likely Departure Time (50% exceedance)","s",UC_NONE +0,2,230,"TOD90","Latest Reasonable Departure Time (90% exceedance)","s",UC_NONE +0,3,192,"MSLET","MSLP (Eta model reduction)","Pa",UC_NONE +0,3,193,"5WAVH","5-Wave Geopotential Height","gpm",UC_NONE +0,3,194,"U-GWD","Zonal Flux of Gravity Wave Stress","N/(m^2)",UC_NONE +0,3,195,"V-GWD","Meridional Flux of Gravity Wave Stress","N/(m^2)",UC_NONE +0,3,196,"HPBL","Planetary Boundary Layer Height","m",UC_NONE +0,3,197,"5WAVA","5-Wave Geopotential Height Anomaly","gpm",UC_NONE +0,3,198,"MSLMA","MSLP (MAPS System Reduction)","Pa",UC_NONE +0,3,199,"TSLSA","3-hr pressure tendency (Std. Atmos. Reduction)","Pa/s",UC_NONE +0,3,200,"PLPL","Pressure of level from which parcel was lifted","Pa",UC_NONE +0,3,201,"LPSX","X-gradiant of Log Pressure","1/m",UC_NONE +0,3,202,"LPSY","Y-gradiant of Log Pressure","1/m",UC_NONE +0,3,203,"HGTX","X-gradiant of Height","1/m",UC_NONE +0,3,204,"HGTY","Y-gradiant of Height","1/m",UC_NONE +0,3,205,"LAYTH","Layer Thickness","m",UC_NONE +0,3,206,"NLGSP","Natural Log of Surface Pressure","ln(kPa)",UC_NONE +0,3,207,"CNVUMF","Convective updraft mass flux","kg/m^2/s",UC_NONE +0,3,208,"CNVDMF","Convective downdraft mass flux","kg/m^2/s",UC_NONE +0,3,209,"CNVDEMF","Convective detrainment mass flux","kg/m^2/s",UC_NONE +0,3,210,"LMH","Mass point model surface","-",UC_NONE +0,3,211,"HGTN","Geopotential height (nearest grid point)","gpm",UC_NONE +0,3,212,"PRESN","Pressure (nearest grid point)","Pa",UC_NONE +0,3,213,"ORCONV","Orographic Convexity","",UC_NONE +0,3,214,"ORASW","Orographic Asymmetry, W Component","",UC_NONE +0,3,215,"ORASS","Orographic Asymmetry, S Component","",UC_NONE +0,3,216,"ORASSW","Orographic Asymmetry, SW Component","",UC_NONE +0,3,217,"ORASNW","Orographic Asymmetry, NW Component","",UC_NONE +0,3,218,"ORLSW","Orographic Length Scale, W Component","",UC_NONE +0,3,219,"ORLSS","Orographic Length Scale, S Component","",UC_NONE +0,3,220,"ORLSSW","Orographic Length Scale, SW Component","",UC_NONE +0,3,221,"ORLSNW","Orographic Length Scale, NW Component","",UC_NONE +0,4,192,"DSWRF","Downward Short-Wave Rad. Flux","W/(m^2)",UC_NONE +0,4,193,"USWRF","Upward Short-Wave Rad. Flux","W/(m^2)",UC_NONE +0,4,194,"DUVB","UV-B downward solar flux","W/(m^2)",UC_NONE +0,4,195,"CDUVB","Clear sky UV-B downward solar flux","W/(m^2)",UC_NONE +0,4,196,"CSDSF","Clear sky Downward Solar Flux","W/(m^2)",UC_NONE +0,4,197,"SWHR","Solar Radiative Heating Rate","K/s",UC_NONE +0,4,198,"CSUSF","Clear Sky Upward Solar Flux","W/(m^2)",UC_NONE +0,4,199,"CFNSF","Cloud Forcing Net Solar Flux","W/(m^2)",UC_NONE +0,4,200,"VBDSF","Visible Beam Downward Solar Flux","W/(m^2)",UC_NONE +0,4,201,"VDDSF","Visible Diffuse Downward Solar Flux","W/(m^2)",UC_NONE +0,4,202,"NBDSF","Near IR Beam Downward Solar Flux","W/(m^2)",UC_NONE +0,4,203,"NDDSF","Near IR Diffuse Downward Solar Flux","W/(m^2)",UC_NONE +0,4,204,"DTRF","Downward Total radiation Flux","W/(m^2)",UC_NONE +0,4,205,"UTRF","Upward Total radiation Flux","W/(m^2)",UC_NONE +0,5,192,"DLWRF","Downward Long-Wave Rad. Flux","W/(m^2)",UC_NONE +0,5,193,"ULWRF","Upward Long-Wave Rad. Flux","W/(m^2)",UC_NONE +0,5,194,"LWHR","Long-Wave Radiative Heating Rate","K/s",UC_NONE +0,5,195,"CSULF","Clear Sky Upward Long Wave Flux","W/(m^2)",UC_NONE +0,5,196,"CSDLF","Clear Sky Downward Long Wave Flux","W/(m^2)",UC_NONE +0,5,197,"CFNLF","Cloud Forcing Net Long Wave Flux","W/(m^2)",UC_NONE +0,6,192,"CDLYR","Non-Convective Cloud Cover","%",UC_NONE +0,6,193,"CWORK","Cloud Work Function","J/kg",UC_NONE +0,6,194,"CUEFI","Convective Cloud Efficiency","-",UC_NONE +0,6,195,"TCOND","Total Condensate","kg/kg",UC_NONE +0,6,196,"TCOLW","Total Column-Integrated Cloud Water","kg/(m^2)",UC_NONE +0,6,197,"TCOLI","Total Column-Integrated Cloud Ice","kg/(m^2)",UC_NONE +0,6,198,"TCOLC","Total Column-Integrated Condensate","kg/(m^2)",UC_NONE +0,6,199,"FICE","Ice fraction of total condensate","-",UC_NONE +0,6,200,"MFLUX","Convective Cloud Mass Flux","Pa/s",UC_NONE +0,6,201,"SUNSD","SunShine duration","s",UC_NONE +0,7,192,"LFTX","Surface Lifted Index","K",UC_NONE +0,7,193,"4LFTX","Best (4 layer) Lifted Index","K",UC_NONE +0,7,194,"RI","Richardson Number","-",UC_NONE +0,7,195,"CWDI","Convective Weather Detection Index","-",UC_NONE +0,7,196,"UVI","Ultra Violet Index","W/(m^2)",UC_UVIndex +0,7,197,"UPHL","Updraft Helicity","m^2/s^2",UC_NONE +0,7,198,"LAI","Leaf area index","-",UC_NONE +0,7,199,"MXUPHL","Hourly Maximum of Updraft Helicity over Layer 2km to 5 km AGL","m^2/s^2",UC_NONE +0,7,200,"MNUPHL","Hourly Minimum of Updraft Helicity","m^2/s^2",UC_NONE +0,7,201,"BNEGLAY","Bourgoiun Negative Energy Layer (surface to freezing level)","J/kg",UC_NONE +0,7,202,"BPOSELAY","Bourgoiun Positive Energy Layer (2k ft AGL to 400 hPa)","J/kg",UC_NONE +0,13,192,"PMTC","Particulate matter (coarse)","10^-6g/m^3",UC_NONE +0,13,193,"PMTF","Particulate matter (fine)","10^-6g/m^3",UC_NONE +0,13,194,"LPMTF","Particulate matter (fine)","log10(10^-6g/m^3)",UC_LOG10 +0,13,195,"LIPMF","Integrated column particulate matter (fine)","log10(10^-6g/m^3)",UC_LOG10 +0,14,192,"O3MR","Ozone Mixing Ratio","kg/kg",UC_NONE +0,14,193,"OZCON","Ozone Concentration","PPB",UC_NONE +0,14,194,"OZCAT","Categorical Ozone Concentration","-",UC_NONE +0,14,195,"VDFOZ","Ozone Vertical Diffusion","kg/kg/s",UC_NONE +0,14,196,"POZ","Ozone Production","kg/kg/s",UC_NONE +0,14,197,"TOZ","Ozone Tendency","kg/kg/s",UC_NONE +0,14,198,"POZT","Ozone Production from Temperature Term","kg/kg/s",UC_NONE +0,14,199,"POZO","Ozone Production from Column Ozone Term","kg/kg/s",UC_NONE +0,14,200,"OZMAX1","Ozone Daily Max from 1-hour Average","ppbV",UC_NONE +0,14,201,"OZMAX8","Ozone Daily Max from 8-hour Average","ppbV",UC_NONE +0,14,202,"PDMAX1","PM 2.5 Daily Max from 1-hour Average","(10^-6g/(m^3)",UC_NONE +0,14,203,"PDMAX24","PM 2.5 Daily Max from 24-hour Average","(10^-6g/(m^3)",UC_NONE +0,16,192,"REFZR","Derived radar reflectivity backscatter from rain","mm^6/m^3",UC_NONE +0,16,193,"REFZI","Derived radar reflectivity backscatter from ice","mm^6/m^3",UC_NONE +0,16,194,"REFZC","Derived radar reflectivity backscatter from parameterized convection","mm^6/m^3",UC_NONE +0,16,195,"REFD","Derived radar reflectivity","dB",UC_NONE +0,16,196,"REFC","Maximum / Composite radar reflectivity","dB",UC_NONE +0,16,197,"RETOP","Radar Echo Top (18.3 DBZ)","m",UC_NONE +0,16,198,"MAXREF","Hourly Maximum of Simulated Reflectivity at 1 km AGL","dB",UC_NONE +0,17,192,"LTNG","Lightning","-",UC_NONE +0,19,192,"MXSALB","Maximum Snow Albedo","%",UC_NONE +0,19,193,"SNFALB","Snow-Free Albedo","%",UC_NONE +0,19,194,"SRCONO","Slight risk convective outlook","categorical",UC_NONE +0,19,195,"MRCONO","Moderate risk convective outlook","categorical",UC_NONE +0,19,196,"HRCONO","High risk convective outlook","categorical",UC_NONE +0,19,197,"TORPROB","Tornado probability","%",UC_NONE +0,19,198,"HAILPROB","Hail probability","%",UC_NONE +0,19,199,"WINDPROB","Wind probability","%",UC_NONE +0,19,200,"STORPROB","Significant Tornado probability","%",UC_NONE +0,19,201,"SHAILPRO","Significant Hail probability","%",UC_NONE +0,19,202,"SWINDPRO","Significant Wind probability","%",UC_NONE +0,19,203,"TSTMC","Categorical Thunderstorm","0=no; 1=yes",UC_NONE +0,19,204,"MIXLY","Number of mixed layers next to surface","integer",UC_NONE +0,19,205,"FLGHT","Flight Category","-",UC_NONE +0,19,206,"CICEL","Confidence Ceiling","-",UC_NONE +0,19,207,"CIVIS","Confidence Visibility","-",UC_NONE +0,19,208,"CIFLT","Confidence Flight Category","-",UC_NONE +0,19,209,"LAVNI","Low Level aviation interest","-",UC_NONE +0,19,210,"HAVNI","High Level aviation interest","-",UC_NONE +0,19,211,"SBSALB","Visible; Black Sky Albedo","%",UC_NONE +0,19,212,"SWSALB","Visible; White Sky Albedo","%",UC_NONE +0,19,213,"NBSALB","Near IR; Black Sky Albedo","%",UC_NONE +0,19,214,"NWSALB","Near IR; White Sky Albedo","%",UC_NONE +0,19,215,"PRSVR","Total Probability of Severe Thunderstorms (Days 2,3)","%",UC_NONE +0,19,216,"PRSIGSVR","Total Probability of Extreme Severe Thunderstorms (Days 2,3)","%",UC_NONE +0,19,217,"SIPD","Supercooled Large Droplet Icing","0=None; 1=Light; 2=Moderate; 3=Severe; 4=Trace; 5=Heavy; 255=missing",UC_NONE +0,19,218,"EPSR","Radiative emissivity","",UC_NONE +0,19,219,"TPFI","Turbulence potential forecast index","-",UC_NONE +0,19,220,"SVRTS","Categorical Severe Thunderstorm","0=No; 1=Yes; 2-3=Reserved; 4=Low; 5=Reserved; 6=Medium; 7=Reserved; 8=High; 255=missing",UC_NONE +0,19,221,"PROCON","Probability of Convection","%",UC_NONE +0,19,222,"CONVP","Convection Potential","0=No; 1=Yes; 2-3=Reserved; 4=Low; 5=Reserved; 6=Medium; 7=Reserved; 8=High; 255=missing",UC_NONE +0,19,223,"","Reserved","-",UC_NONE +0,19,224,"","Reserved","-",UC_NONE +0,19,225,"","Reserved","-",UC_NONE +0,19,226,"","Reserved","-",UC_NONE +0,19,227,"","Reserved","-",UC_NONE +0,19,228,"","Reserved","-",UC_NONE +0,19,229,"","Reserved","-",UC_NONE +0,19,230,"","Reserved","-",UC_NONE +0,19,231,"","Reserved","-",UC_NONE +0,19,232,"VAFTD","Volcanic Ash Forecast Transport and Dispersion","log10(kg/m^3)",UC_NONE +0,19,233,"ICPRB","Icing probability","-",UC_NONE +0,19,234,"ICSEV","Icing severity","-",UC_NONE +0,19,235,"JFWPRB","Joint Fire Weather Probability","%",UC_NONE +0,19,236,"SNOWLVL","Snow Level","m",UC_NONE +0,19,237,"DRYTPROB","Dry Thunderstorm Probability","%",UC_NONE +0,191,192,"NLAT","Latitude (-90 to 90)","deg",UC_NONE +0,191,193,"ELON","East Longitude (0 to 360)","deg",UC_NONE +0,191,194,"TSEC","Seconds prior to initial reference time","s",UC_NONE +0,191,195,"MLYNO","Model Layer number (From bottom up)","",UC_NONE +0,191,196,"NLATN","Latitude (nearest neighbor) (-90 to 90)","deg",UC_NONE +0,191,197,"ELONN","East longitude (nearest neighbor) (0 to 360)","deg",UC_NONE +0,192,1,"COVZM","Covariance between zonal and meridonial components of the wind","m^2/s^2",UC_NONE +0,192,2,"COVTZ","Covariance between zonal component of the wind and temperature","K*m/s",UC_NONE +0,192,3,"COVTM","Covariance between meridonial component of the wind and temperature","K*m/s",UC_NONE +0,192,4,"COVTW","Covariance between temperature and vertical component of the wind","K*m/s",UC_NONE +0,192,5,"COVZZ","Covariance between zonal and zonal components of the wind","m^2/s^2",UC_NONE +0,192,6,"COVMM","Covariance between meridonial and meridonial components of the wind","m^2/s^2",UC_NONE +0,192,7,"COVQZ","Covariance between specific humidity and zonal components of the wind","kg/kg*m/s",UC_NONE +0,192,8,"COVQM","Covariance between specific humidity and meridonial components of the wind","kg/kg*m/s",UC_NONE +0,192,9,"COVTVV","Covariance between temperature and vertical components of the wind","K*Pa/s",UC_NONE +0,192,10,"COVQVV","Covariance between specific humidity and vertical components of the wind","kg/kg*Pa/s",UC_NONE +0,192,11,"COVPSPS","Covariance between surface pressure and surface pressure","Pa*Pa",UC_NONE +0,192,12,"COVQQ","Covariance between specific humidity and specific humidity","kg/kg*kg/kg",UC_NONE +0,192,13,"COVVVVV","Covariance between vertical and vertical components of the wind","Pa^2/s^2",UC_NONE +0,192,14,"COVTT","Covariance between temperature and temperature","K*K",UC_NONE +1,0,192,"BGRUN","Baseflow-Groundwater Runoff","kg/(m^2)",UC_NONE +1,0,193,"SSRUN","Storm Surface Runoff","kg/(m^2)",UC_NONE +1,1,192,"CPOZP","Probability of Freezing Precipitation","%",UC_NONE +1,1,193,"CPOFP","Probability of Frozen Precipitation","%",UC_NONE +1,1,194,"PPFFG","Probability of precipitation exceeding flash flood guidance values","%",UC_NONE +1,1,195,"CWR","Probability of Wetting Rain; exceeding in 0.1 inch in a given time period","%",UC_NONE +2,0,192,"SOILW","Volumetric Soil Moisture Content","Fraction",UC_NONE +2,0,193,"GFLUX","Ground Heat Flux","W/(m^2)",UC_NONE +2,0,194,"MSTAV","Moisture Availability","%",UC_NONE +2,0,195,"SFEXC","Exchange Coefficient","(kg/(m^3))(m/s)",UC_NONE +2,0,196,"CNWAT","Plant Canopy Surface Water","kg/(m^2)",UC_NONE +2,0,197,"BMIXL","Blackadar's Mixing Length Scale","m",UC_NONE +2,0,198,"VGTYP","Vegetation Type","0..13",UC_NONE +2,0,199,"CCOND","Canopy Conductance","m/s",UC_NONE +2,0,200,"RSMIN","Minimal Stomatal Resistance","s/m",UC_NONE +2,0,201,"WILT","Wilting Point","Fraction",UC_NONE +2,0,202,"RCS","Solar parameter in canopy conductance","Fraction",UC_NONE +2,0,203,"RCT","Temperature parameter in canopy conductance","Fraction",UC_NONE +2,0,204,"RCQ","Humidity parameter in canopy conductance","Fraction",UC_NONE +2,0,205,"RCSOL","Soil moisture parameter in canopy conductance","Fraction",UC_NONE +2,0,206,"RDRIP","Rate of water dropping from canopy to ground","unknown",UC_NONE +2,0,207,"ICWAT","Ice-free water surface","%",UC_NONE +2,0,208,"AKHS","Surface exchange coefficients for T and Q divided by delta z","m/s",UC_NONE +2,0,209,"AKMS","Surface exchange coefficients for U and V divided by delta z","m/s",UC_NONE +2,0,210,"VEGT","Vegetation canopy temperature","K",UC_NONE +2,0,211,"SSTOR","Surface water storage","K g/m^2",UC_NONE +2,0,212,"LSOIL","Liquid soil moisture content (non-frozen)","K g/m^2",UC_NONE +2,0,213,"EWATR","Open water evaporation (standing water)","W/m^2",UC_NONE +2,0,214,"GWREC","Groundwater recharge","kg/m^2",UC_NONE +2,0,215,"QREC","Flood plain recharge","kg/m^2",UC_NONE +2,0,216,"SFCRH","Roughness length for heat","m",UC_NONE +2,0,217,"NDVI","Normalized difference vegetation index","-",UC_NONE +2,0,218,"LANDN","Land-sea coverage (nearest neighbor)","0=sea; 1=land",UC_NONE +2,0,219,"AMIXL","Asymptotic mixing length scale","m",UC_NONE +2,0,220,"WVINC","Water vapor added by precip assimilation","kg/m^2",UC_NONE +2,0,221,"WCINC","Water condensate added by precip assimilation","kg/m^2",UC_NONE +2,0,222,"WVCONV","Water vapor flux convergence (vertical int)","kg/m^2",UC_NONE +2,0,223,"WCCONV","Water condensate flux convergence (vertical int)","kg/m^2",UC_NONE +2,0,224,"WVUFLX","Water vapor zonal flux (vertical int)","kg/m^2",UC_NONE +2,0,225,"WVVFLX","Water vapor meridional flux (vertical int)","kg/m^2",UC_NONE +2,0,226,"WCUFLX","Water condensate zonal flux (vertical int)","kg/m^2",UC_NONE +2,0,227,"WCVFLX","Water condensate meridional flux (vertical int)","kg/m^2",UC_NONE +2,0,228,"ACOND","Aerodynamic conductance","m/s",UC_NONE +2,0,229,"EVCW","Canopy water evaporation","W/(m^2)",UC_NONE +2,0,230,"TRANS","Transpiration","W/(m^2)",UC_NONE +2,1,192,"CANL","Cold Advisory for Newborn Livestock","0=none; 2=slight; 4=mild; 6=moderate; 8=severe; 10=extreme",UC_NONE +2,3,192,"SOILL","Liquid Volumetric Soil Moisture (non Frozen)","Proportion",UC_NONE +2,3,193,"RLYRS","Number of Soil Layers in Root Zone","-",UC_NONE +2,3,194,"SLTYP","Surface Slope Type","Index",UC_NONE +2,3,195,"SMREF","Transpiration Stress-onset (soil moisture)","Proportion",UC_NONE +2,3,196,"SMDRY","Direct Evaporation Cease (soil moisture)","Proportion",UC_NONE +2,3,197,"POROS","Soil Porosity","Proportion",UC_NONE +2,3,198,"EVBS","Direct evaporation from bare soil","W/m^2",UC_NONE +2,3,199,"LSPA","Land Surface Precipitation Accumulation","kg/m^2",UC_NONE +2,3,200,"BARET","Bare soil surface skin temperature","K",UC_NONE +2,3,201,"AVSFT","Average surface skin temperature","K",UC_NONE +2,3,202,"RADT","Effective radiative skin temperature","K",UC_NONE +2,3,203,"FLDCP","Field Capacity","fraction",UC_NONE +3,1,192,"USCT","Scatterometer Estimated U Wind","m/s",UC_NONE +3,1,193,"VSCT","Scatterometer Estimated V Wind","m/s",UC_NONE +3,1,194,"SWQI","Scatterometer Wind Quality","",UC_NONE +3,192,0,"SBT122","Simulated Brightness Temperature for GOES 12, Channel 2","K",UC_NONE +3,192,1,"SBT123","Simulated Brightness Temperature for GOES 12, Channel 3","K",UC_NONE +3,192,2,"SBT124","Simulated Brightness Temperature for GOES 12, Channel 4","K",UC_NONE +3,192,3,"SBT125","Simulated Brightness Temperature for GOES 12, Channel 5","K",UC_NONE +3,192,4,"SBC123","Simulated Brightness Counts for GOES 12, Channel 3","numeric",UC_NONE +3,192,5,"SBC124","Simulated Brightness Counts for GOES 12, Channel 4","numeric",UC_NONE +3,192,6,"SBT112","Simulated Brightness Temperature for GOES 11, Channel 2","K",UC_NONE +3,192,7,"SBT113","Simulated Brightness Temperature for GOES 11, Channel 3","K",UC_NONE +3,192,8,"SBT114","Simulated Brightness Temperature for GOES 11, Channel 4","K",UC_NONE +3,192,9,"SBT115","Simulated Brightness Temperature for GOES 11, Channel 5","K",UC_NONE +3,192,10,"AMSRE9","Simulated Brightness Temperature for AMSRE on Aqua, Channel 9","K",UC_NONE +3,192,11,"AMSRE10","Simulated Brightness Temperature for AMSRE on Aqua, Channel 10","K",UC_NONE +3,192,12,"AMSRE11","Simulated Brightness Temperature for AMSRE on Aqua, Channel 11","K",UC_NONE +3,192,13,"AMSRE12","Simulated Brightness Temperature for AMSRE on Aqua, Channel 12","K",UC_NONE +3,192,14,"SRFA161","Simulated Reflectance Factor for ABI GOES-16, Band-1","",UC_NONE +3,192,15,"SRFA162","Simulated Reflectance Factor for ABI GOES-16, Band-2","",UC_NONE +3,192,16,"SRFA163","Simulated Reflectance Factor for ABI GOES-16, Band-3","",UC_NONE +3,192,17,"SRFA164","Simulated Reflectance Factor for ABI GOES-16, Band-4","",UC_NONE +3,192,18,"SRFA165","Simulated Reflectance Factor for ABI GOES-16, Band-5","",UC_NONE +3,192,19,"SRFA166","Simulated Reflectance Factor for ABI GOES-16, Band-6","",UC_NONE +3,192,20,"SBTA167","Simulated Brightness Temperature for ABI GOES-16, Band-7","K",UC_NONE +3,192,21,"SBTA168","Simulated Brightness Temperature for ABI GOES-16, Band-8","K",UC_NONE +3,192,22,"SBTA169","Simulated Brightness Temperature for ABI GOES-16, Band-9","K",UC_NONE +3,192,23,"SBTA1610","Simulated Brightness Temperature for ABI GOES-16, Band-10","K",UC_NONE +3,192,24,"SBTA1611","Simulated Brightness Temperature for ABI GOES-16, Band-11","K",UC_NONE +3,192,25,"SBTA1612","Simulated Brightness Temperature for ABI GOES-16, Band-12","K",UC_NONE +3,192,26,"SBTA1613","Simulated Brightness Temperature for ABI GOES-16, Band-13","K",UC_NONE +3,192,27,"SBTA1614","Simulated Brightness Temperature for ABI GOES-16, Band-14","K",UC_NONE +3,192,28,"SBTA1615","Simulated Brightness Temperature for ABI GOES-16, Band-15","K",UC_NONE +3,192,29,"SBTA1616","Simulated Brightness Temperature for ABI GOES-16, Band-16","K",UC_NONE +3,192,30,"SRFA171","Simulated Reflectance Factor for ABI GOES-17, Band-1","",UC_NONE +3,192,31,"SRFA172","Simulated Reflectance Factor for ABI GOES-17, Band-2","",UC_NONE +3,192,32,"SRFA173","Simulated Reflectance Factor for ABI GOES-17, Band-3","",UC_NONE +3,192,33,"SRFA174","Simulated Reflectance Factor for ABI GOES-17, Band-4","",UC_NONE +3,192,34,"SRFA175","Simulated Reflectance Factor for ABI GOES-17, Band-5","",UC_NONE +3,192,35,"SRFA176","Simulated Reflectance Factor for ABI GOES-17, Band-6","",UC_NONE +3,192,36,"SBTA177","Simulated Brightness Temperature for ABI GOES-17, Band-7","K",UC_NONE +3,192,37,"SBTA178","Simulated Brightness Temperature for ABI GOES-17, Band-8","K",UC_NONE +3,192,38,"SBTA179","Simulated Brightness Temperature for ABI GOES-17, Band-9","K",UC_NONE +3,192,39,"SBTA1710","Simulated Brightness Temperature for ABI GOES-17, Band-10","K",UC_NONE +3,192,40,"SBTA1711","Simulated Brightness Temperature for ABI GOES-17, Band-11","K",UC_NONE +3,192,41,"SBTA1712","Simulated Brightness Temperature for ABI GOES-17, Band-12","K",UC_NONE +3,192,42,"SBTA1713","Simulated Brightness Temperature for ABI GOES-17, Band-13","K",UC_NONE +3,192,43,"SBTA1714","Simulated Brightness Temperature for ABI GOES-17, Band-14","K",UC_NONE +3,192,44,"SBTA1715","Simulated Brightness Temperature for ABI GOES-17, Band-15","K",UC_NONE +3,192,45,"SBTA1716","Simulated Brightness Temperature for ABI GOES-17, Band-16","K",UC_NONE +10,0,192,"WSTP","Wave Steepness","0",UC_NONE +10,0,193,"WLENG","Wave Length","0",UC_NONE +10,1,192,"OMLU","Ocean Mixed Layer U Velocity","m/s",UC_NONE +10,1,193,"OMLV","Ocean Mixed Layer V Velocity","m/s",UC_NONE +10,1,194,"UBARO","Barotropic U Velocity","m/s",UC_NONE +10,1,195,"VBARO","Barotropic V Velocity","m/s",UC_NONE +10,3,192,"SURGE","Hurricane Storm Surge","m",UC_M2Feet +10,3,193,"ETSRG","Extra Tropical Storm Surge","m",UC_M2Feet +10,3,194,"ELEV","Ocean Surface Elevation Relative to Geoid","m",UC_NONE +10,3,195,"SSHG","Sea Surface Height Relative to Geoid","m",UC_NONE +10,3,196,"P2OMLT","Ocean Mixed Layer Potential Density (Reference 2000m)","kg/(m^3)",UC_NONE +10,3,197,"AOHFLX","Net Air-Ocean Heat Flux","W/(m^2)",UC_NONE +10,3,198,"ASHFL","Assimilative Heat Flux","W/(m^2)",UC_NONE +10,3,199,"SSTT","Surface Temperature Trend","degree/day",UC_NONE +10,3,200,"SSST","Surface Salinity Trend","psu/day",UC_NONE +10,3,201,"KENG","Kinetic Energy","J/kg",UC_NONE +10,3,202,"SLTFL","Salt Flux","kg/(m^2*s)",UC_NONE +10,3,203,"LCH","Heat Exchange Coefficient","",UC_NONE +10,3,242,"TCSRG20","20% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,243,"TCSRG30","30% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,244,"TCSRG40","40% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,245,"TCSRG50","50% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,246,"TCSRG60","60% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,247,"TCSRG70","70% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,248,"TCSRG80","80% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,249,"TCSRG90","90% Tropical Cyclone Storm Surge Exceedance","m",UC_M2Feet +10,3,250,"ETCWL","Extra Tropical Storm Surge Combined Surge and Tide","m",UC_M2Feet +10,3,251,"TIDE","Tide","m",UC_M2Feet +10,3,252,"EROSNP","Erosion Occurrence Probability","%",UC_NONE +10,3,253,"OWASHP","Overwash Occurrence Probability","%",UC_NONE +10,4,192,"WTMPC","3-D Temperature","deg C",UC_NONE +10,4,193,"SALIN","3-D Salinity","",UC_NONE +10,4,194,"BKENG","Barotropic Kinetic Energy","J/kg",UC_NONE +10,4,195,"DBSS","Geometric Depth Below Sea Surface","m",UC_NONE +10,4,196,"INTFD","Interface Depths","m",UC_NONE +10,4,197,"OHC","Ocean Heat Content","J/m^2",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv new file mode 100644 index 00000000..f59b2d0c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_NDFD.csv @@ -0,0 +1,38 @@ +prod,cat,subcat,short_name,name,unit,unit_conv +0,0,193,"ApparentT","Apparent Temperature","K",UC_K2F +0,0,205,"WBGT","Wet Bulb Globe Temperature","K",UC_K2F +0,1,192,"Wx","Weather string","-",UC_NONE +0,1,193,"PPI","Precipitation Potential Index","%",UC_NONE +0,1,227,"IceAccum","Ice Accumulation","kg/m^2",UC_InchWater +0,10,8,"PoP12","Prob of 0.01 In. of Precip","%",UC_NONE +0,13,194,"smokes","Surface level smoke from fires","log10(10^-6g/m^3)",UC_LOG10 +0,13,195,"smokec","Average vertical column smoke from fires","log10(10^-6g/m^3)",UC_LOG10 +0,14,192,"O3MR","Ozone Mixing Ratio","kg/kg",UC_NONE +0,14,193,"OZCON","Ozone Concentration","PPB",UC_NONE +0,14,200,"OZMAX1","Ozone Daily Max from 1-hour Average","ppbV",UC_NONE +0,14,201,"OZMAX8","Ozone Daily Max from 8-hour Average","ppbV",UC_NONE +0,19,194,"ConvOutlook","Convective Hazard Outlook","0=none; 2=tstm; 4=slight; 6=moderate; 8=high",UC_NONE +0,19,197,"TornadoProb","Tornado Probability","%",UC_NONE +0,19,198,"HailProb","Hail Probability","%",UC_NONE +0,19,199,"WindProb","Damaging Thunderstorm Wind Probability","%",UC_NONE +0,19,200,"XtrmTornProb","Extreme Tornado Probability","%",UC_NONE +0,19,201,"XtrmHailProb","Extreme Hail Probability","%",UC_NONE +0,19,202,"XtrmWindProb","Extreme Thunderstorm Wind Probability","%",UC_NONE +0,19,215,"TotalSvrProb","Total Probability of Severe Thunderstorms","%",UC_NONE +0,19,216,"TotalXtrmProb","Total Probability of Extreme Severe Thunderstorms","%",UC_NONE +0,19,217,"WWA","Watch Warning Advisory","-",UC_NONE +0,19,235,"TCWind","Tropical Cyclone Wind Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,236,"TCSurge","Tropical Cyclone Storm Surge Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,238,"TCRain","Tropical Cyclone Flooding Rain Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,239,"TCTornado","Tropical Cyclone Tornado Threat","0=none; 4=low; 6=moderate; 8=high; 10=extreme",UC_NONE +0,19,246,"SNOWLVL","Snow Level","m",UC_M2Feet +0,19,203,"TotalSvrProb","Total Probability of Severe Thunderstorms","%",UC_NONE +0,19,204,"TotalXtrmProb","Total Probability of Extreme Severe Thunderstorms","%",UC_NONE +0,192,192,"FireWx","Critical Fire Weather","%",UC_NONE +0,192,194,"DryLightning","Dry Lightning","%",UC_NONE +2,1,192,"CANL","Cold Advisory for Newborn Livestock","0=none; 2=slight; 4=mild; 6=moderate; 8=severe; 10=extreme",UC_NONE +10,3,192,"Surge","Hurricane Storm Surge","m",UC_M2Feet +10,3,193,"ETSurge","Extra Tropical Storm Surge","m",UC_M2Feet +10,3,250,"StormTide","Storm Surge and Tide","m",UC_M2Feet +10,3,251,"Tide","Tide","m",UC_M2Feet +0,1,198,"MinRH","Minimum Relative Humidity","%",UC_NONE diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv new file mode 100644 index 00000000..c96caa9e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_2_local_index.csv @@ -0,0 +1,7 @@ +center_code,subcenter_code,filename +7,5,grib2_table_4_2_local_HPC.csv +7,,grib2_table_4_2_local_NCEP.csv +8,0,grib2_table_4_2_local_NDFD.csv +8,65535,grib2_table_4_2_local_NDFD.csv +54,,grib2_table_4_2_local_Canada.csv +161,,grib2_table_4_2_local_MRMS.csv diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv new file mode 100644 index 00000000..a49b73cc --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_4_5.csv @@ -0,0 +1,261 @@ +"code","short_name","name","unit" +-4,"######################################################################################################","#","#" +-3,"DO NOT MODIFY THIS FILE. It is generated by frmts/grib/degrib/merge_degrib_and_wmo_tables.py","#","#" +-2,"from tables at version https://github.com/wmo-im/GRIB2/commit/cf3a2a24695f60f64ac9d5eb26a24b26d2a8a816","#","#" +-1,"######################################################################################################","#","#" +0,"RESERVED","Reserved","-" +1,"SFC","Ground or water surface","-" +2,"CBL","Cloud base level","-" +3,"CTL","Level of cloud tops","-" +4,"0DEG","Level of 0 degree C isotherm","-" +5,"ADCL","Level of adiabatic condensation lifted from the surface","-" +6,"MWSL","Maximum wind level","-" +7,"TRO","Tropopause","-" +8,"NTAT","Nominal top of atmosphere","-" +9,"SEAB","Sea bottom","-" +10,"EATM","Entire Atmosphere","-" +11,"CB","Cumulonimbus Base","m" +12,"CT","Cumulonimbus Top","m" +13,"unknown","Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover)","%" +14,"LFC","Level of free convection","-" +15,"CCL","Convection condensation level","-" +16,"LNB","Level of neutral buoyancy or equilibrium","-" +17,"","Departure level of the most unstable parcel of air (MUDL)","-" +18,"","Departure level of a mixed layer parcel of air with specified layer depth","Pa" +19,"","Reserved","-" +20,"TMPL","Isothermal level","K" +21,"","Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)","kg m-3" +22,"","Highest level where mass density exceeds the specified value (top for a given threshold of mass density)","kg m-3" +23,"","Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration)","Bq m-3" +24,"","Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)","Bq m-3" +25,"","Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)","dBZ" +26,"","Convective cloud layer base","m" +27,"","Convective cloud layer top","m" +28,"","Reserved","-" +29,"","Reserved","-" +30,"","Specified radius from the centre of the Sun","m" +31,"","Solar photosphere","-" +32,"","Ionospheric D-region level","-" +33,"","Ionospheric E-region level","-" +34,"","Ionospheric F1-region level","-" +35,"","Ionospheric F2-region level","-" +36,"","Reserved","-" +37,"","Reserved","-" +38,"","Reserved","-" +39,"","Reserved","-" +40,"","Reserved","-" +41,"","Reserved","-" +42,"","Reserved","-" +43,"","Reserved","-" +44,"","Reserved","-" +45,"","Reserved","-" +46,"","Reserved","-" +47,"","Reserved","-" +48,"","Reserved","-" +49,"","Reserved","-" +50,"","Reserved","-" +51,"","Reserved","-" +52,"","Reserved","-" +53,"","Reserved","-" +54,"","Reserved","-" +55,"","Reserved","-" +56,"","Reserved","-" +57,"","Reserved","-" +58,"","Reserved","-" +59,"","Reserved","-" +60,"","Reserved","-" +61,"","Reserved","-" +62,"","Reserved","-" +63,"","Reserved","-" +64,"","Reserved","-" +65,"","Reserved","-" +66,"","Reserved","-" +67,"","Reserved","-" +68,"","Reserved","-" +69,"","Reserved","-" +70,"","Reserved","-" +71,"","Reserved","-" +72,"","Reserved","-" +73,"","Reserved","-" +74,"","Reserved","-" +75,"","Reserved","-" +76,"","Reserved","-" +77,"","Reserved","-" +78,"","Reserved","-" +79,"","Reserved","-" +80,"","Reserved","-" +81,"","Reserved","-" +82,"","Reserved","-" +83,"","Reserved","-" +84,"","Reserved","-" +85,"","Reserved","-" +86,"","Reserved","-" +87,"","Reserved","-" +88,"","Reserved","-" +89,"","Reserved","-" +90,"","Reserved","-" +91,"","Reserved","-" +92,"","Reserved","-" +93,"","Reserved","-" +94,"","Reserved","-" +95,"","Reserved","-" +96,"","Reserved","-" +97,"","Reserved","-" +98,"","Reserved","-" +99,"","Reserved","-" +100,"ISBL","Isobaric surface","Pa" +101,"MSL","Mean sea level","-" +102,"GPML","Specific altitude above mean sea level","m" +103,"HTGL","Specified height level above ground","m" +104,"SIGL","Sigma level","'sigma' value" +105,"HYBL","Hybrid level","-" +106,"DBLL","Depth below land surface","m" +107,"THEL","Isentropic (theta) level","K" +108,"SPDL","Level at specified pressure difference from ground to level","Pa" +109,"PVL","Potential vorticity surface","(K m^2)/(kg s)" +110,"RESERVED","Reserved","-" +111,"EtaL","Eta* level","-" +112,"RESERVED","Reserved","-" +113,"","Logarithmic hybrid level","-" +114,"SNOWLVL","Snow Level","m" +115,"","Sigma height level","-" +116,"","Reserved","-" +117,"unknown","Mixed layer depth","m" +118,"","Hybrid height level","-" +119,"","Hybrid pressure level","-" +120,"","Reserved","-" +121,"","Reserved","-" +122,"","Reserved","-" +123,"","Reserved","-" +124,"","Reserved","-" +125,"","Reserved","-" +126,"","Reserved","-" +127,"","Reserved","-" +128,"","Reserved","-" +129,"","Reserved","-" +130,"","Reserved","-" +131,"","Reserved","-" +132,"","Reserved","-" +133,"","Reserved","-" +134,"","Reserved","-" +135,"","Reserved","-" +136,"","Reserved","-" +137,"","Reserved","-" +138,"","Reserved","-" +139,"","Reserved","-" +140,"","Reserved","-" +141,"","Reserved","-" +142,"","Reserved","-" +143,"","Reserved","-" +144,"","Reserved","-" +145,"","Reserved","-" +146,"","Reserved","-" +147,"","Reserved","-" +148,"","Reserved","-" +149,"","Reserved","-" +150,"GVHC","Generalized Vertical Height Coordinate","-" +151,"","Soil level","Numeric" +152,"","Sea-ice level","Numeric" +153,"","Reserved","-" +154,"","Reserved","-" +155,"","Reserved","-" +156,"","Reserved","-" +157,"","Reserved","-" +158,"","Reserved","-" +159,"","Reserved","-" +160,"DBSL","Depth below sea level","m" +161,"","Depth below water surface","m" +162,"","Lake or river bottom","-" +163,"","Bottom of sediment layer","-" +164,"","Bottom of thermally active sediment layer","-" +165,"","Bottom of sediment layer penetrated by thermal wave","-" +166,"","Mixing layer","-" +167,"","Bottom of root zone","-" +168,"","Ocean model level","Numeric" +169,"","Ocean level defined by water density (sigma-theta) difference from near-surface to level","kg m-3" +170,"","Ocean level defined by water potential temperature difference from near-surface to level","K" +171,"","Ocean level defined by vertical eddy diffusivity difference from near-surface to level","m2 s-1" +172,"","Reserved","-" +173,"","Reserved","-" +174,"","Top surface of ice on sea, lake or river","-" +175,"","Top surface of ice, under snow cover, on sea, lake or river","-" +176,"","Bottom surface (underside) ice on sea, lake or river","-" +177,"","Deep soil (of indefinite depth)","-" +178,"","Reserved","-" +179,"","Top surface of glacier ice and inland ice","-" +180,"","Deep inland or glacier ice (of indefinite depth)","-" +181,"","Grid tile land fraction as a model surface","-" +182,"","Grid tile water fraction as a model surface","-" +183,"","Grid tile ice fraction on sea, lake or river as a model surface","-" +184,"","Grid tile glacier ice and inland ice fraction as a model surface","-" +185,"","Reserved","-" +186,"","Reserved","-" +187,"","Reserved","-" +188,"","Reserved","-" +189,"","Reserved","-" +190,"","Reserved","-" +191,"","Reserved","-" +192,"RESERVED","Reserved Local use","-" +193,"","Reserved for local use","-" +194,"","Reserved for local use","-" +195,"","Reserved for local use","-" +196,"","Reserved for local use","-" +197,"","Reserved for local use","-" +198,"","Reserved for local use","-" +199,"","Reserved for local use","-" +200,"EATM","Entire atmosphere (considered as a single layer)","-" +201,"EOCN","Entire ocean (considered as a single layer)","-" +202,"","Reserved for local use","-" +203,"","Reserved for local use","-" +204,"HTFL","Highest tropospheric freezing level","-" +205,"","Reserved for local use","-" +206,"GCBL","Grid scale cloud bottom level","-" +207,"GCTL","Grid scale cloud top level","-" +208,"","Reserved for local use","-" +209,"BCBL","Boundary layer cloud bottom level","-" +210,"BCTL","Boundary layer cloud top level","-" +211,"BCY","Boundary layer cloud level","-" +212,"LCBL","Low cloud bottom level","-" +213,"LCTL","Low cloud top level","-" +214,"LCY","Low cloud level","-" +215,"CEIL","Cloud ceiling","-" +216,"","Reserved for local use","-" +217,"","Reserved for local use","-" +218,"","Reserved for local use","-" +219,"","Reserved for local use","-" +220,"","Reserved for local use","-" +221,"","Reserved for local use","-" +222,"MCBL","Middle cloud bottom level","-" +223,"MCTL","Middle cloud top level","-" +224,"MCY","Middle cloud level","-" +225,"","Reserved for local use","-" +226,"","Reserved for local use","-" +227,"","Reserved for local use","-" +228,"","Reserved for local use","-" +229,"","Reserved for local use","-" +230,"","Reserved for local use","-" +231,"","Reserved for local use","-" +232,"HCBL","High cloud bottom level","-" +233,"HCTL","High cloud top level","-" +234,"HCY","High cloud level","-" +235,"OITL","Ocean Isotherm Level (1/10 deg C)","-" +236,"OLYR","Layer between two depths below ocean surface","-" +237,"OBML","Bottom of Ocean Mixed Layer (m)","-" +238,"OBIL","Bottom of Ocean Isothermal Layer (m)","-" +239,"","Reserved for local use","-" +240,"","Reserved for local use","-" +241,"","Reserved for local use","-" +242,"CCBL","Convective cloud bottom level","-" +243,"CCTL","Convective cloud top level","-" +244,"CCY","Convective cloud level","-" +245,"LLTW","Lowest level of the wet bulb zero","-" +246,"MTHE","Maximum equivalent potential temperature level","-" +247,"EHLT","Equilibrium level","-" +248,"SCBL","Shallow convective cloud bottom level","-" +249,"SCTL","Shallow convective cloud top level","-" +250,"","Reserved for local use","-" +251,"DCBL","Deep convective cloud bottom level","-" +252,"DCTL","Deep convective cloud top level","-" +253,"LBLSW","Lowest bottom level of supercooled liquid water layer","-" +254,"HTLSW","Highest top level of supercooled liquid water layer","-" +255,"MISSING","Missing","-" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv new file mode 100644 index 00000000..18ab667f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/grib2_table_versions.csv @@ -0,0 +1,3 @@ +component,version +wmo,v30 +degrib,2.25 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_datum.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_datum.csv new file mode 100644 index 00000000..9109176b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_datum.csv @@ -0,0 +1,229 @@ +CODE,NAME,ELLIPSOID,DELTAX,SIGMAX,DELTAY,SIGMAY,DELTAZ,SIGMAZ,NORTH,SOUTH,WEST,EAST,ROTX,ROTY,ROTZ,SCALE +ADI-M,"ADINDAN, Mean",CD,-166,5,-15,5,204,3,-5,31,15,55 +ADI-A,"ADINDAN, Ethiopia",CD,-165,3,-11,3,206,3,-3,25,26,50 +ADI-B,"ADINDAN, Sudan",CD,-161,3,-14,5,205,3,-3,31,15,45 +ADI-C,"ADINDAN, Mali",CD,-123,25,-20,25,220,25,3,31,-20,11 +ADI-D,"ADINDAN, Senegal",CD,-128,25,-18,25,224,25,5,23,-24,-5 +ADI-E,"ADINDAN, Burkina Faso",CD,-118,25,-14,25,218,25,4,22,-12,8 +ADI-F,"ADINDAN, Cameroon",CD,-134,25,-2,25,210,25,-4,19,3,23 +AFG,"AFGOOYE, Somalia",KA,-43,25,-163,25,45,25,-8,19,35,60 +AIA,"ANTIGUA ISLAND ASTRO 1943",CD,-270,25,13,25,62,25,16,20,-65,-61 +AIN-A,"AIN EL ABD 1970, Bahrain",IN,-150,25,-250,25,-1,25,24,28,49,53 +AIN-B,"AIN EL ABD 1970, Saudi Arabia",IN,-143,10,-236,10,7,10,8,38,28,62 +AMA,"AMERICAN SAMOA 1962",CC,-115,25,118,25,426,25,-19,-9,-174,-165 +ANO,"ANNA 1 ASTRO 1965, Cocos Is.",AN,-491,25,-22,25,435,25,-14,-10,94,99 +ARF-M,"ARC 1950, Mean",CD,-143,20,-90,33,-294,20,-36,10,4,42 +ARF-A,"ARC 1950, Botswana",CD,-138,3,-105,5,-289,3,-33,-13,13,36 +ARF-B,"ARC 1950, Lesotho",CD,-125,3,-108,3,-295,8,-36,-23,21,35 +ARF-C,"ARC 1950, Malawi",CD,-161,9,-73,24,-317,8,-21,-3,26,42 +ARF-D,"ARC 1950, Swaziland",CD,-134,15,-105,15,-295,15,-33,-20,25,40 +ARF-E,"ARC 1950, Zaire",CD,-169,25,-19,25,-278,25,-21,10,4,38 +ARF-F,"ARC 1950, Zambia",CD,-147,21,-74,21,-283,27,-24,-1,15,40 +ARF-G,"ARC 1950, Zimbabwe",CD,-142,5,-96,8,-293,11,-29,-9,19,39 +ARF-H,"ARC 1950, Burundi",CD,-153,20,-5,20,-292,20,-11,4,21,37 +ARS-M,"ARC 1960, Kenya & Tanzania",CD,-160,20,-6,20,-302,20,-18,8,23,47 +ARS-A,"ARC 1960, Kenya",CD,-157,4,-2,3,-299,3,-11,8,28,47 +ARS-B,"ARC 1960, Tanzania",CD,-175,6,-23,9,-303,10,-18,5,23,47 +ASC,"ASCENSION ISLAND 1958",IN,-205,25,107,25,53,25,-9,-6,-16,-13 +ASM,"MONTSERRAT ISLAND ASTRO 1958",CD,174,25,359,25,365,25,15,18,-64,-61 +ASQ,"ASTRO STATION 1952, Marcus Is.",IN,124,25,-234,25,-25,25,22,26,152,156 +ATF,"ASTRO BEACON E 1945, Iwo Jima",IN,145,25,75,25,-272,25,22,26,140,144 +AUA,"AUSTRALIAN GEODETIC 1966",AN,-133,3,-48,3,148,3,-46,-4,109,161 +AUG,"AUSTRALIAN GEODETIC 1984",AN,-134,2,-48,2,149,2,-46,-4,109,161 +BAT,"DJAKARTA, INDONESIA",BR,-377,3,681,3,-50,3,-16,11,89,146 +BID,"BISSAU, Guinea-Bissau",IN,-173,25,253,25,27,25,5,19,-23,-7 +BER,"BERMUDA 1957, Bermuda Islands",CC,-73,20,213,20,296,20,31,34,-66,-63 +BOO,"BOGOTA OBSERVATORY, Colombia",IN,307,6,304,5,-318,6,-10,16,-85,-61 +BUR,"BUKIT RIMPAH, Banka & Belitung",BR,-384,-1,664,-1,-48,-1,-6,0,103,110 +CAC,"CAPE CANAVERAL, Fla & Bahamas",CC,-2,3,151,3,181,3,15,38,-94,-58 +CAI,"CAMPO INCHAUSPE 1969, Arg.",IN,-148,5,136,5,90,5,-62,-20,-76,-47 +CAO,"CANTON ASTRO 1966, Phoenix Is.",IN,298,15,-304,15,-375,15,-13,3,-180,-165 +CAP,"CAPE, South Africa",CD,-136,3,-108,6,-292,6,-43,-15,10,40 +CAZ,"CAMP AREA ASTRO, Camp McMurdo",IN,-104,-1,-129,-1,239,-1,-85,-70,135,180 +CCD,"S-JTSK, Czech Republic",BR,589,4,76,2,480,3,43,56,6,28 +CGE,"CARTHAGE, Tunisia",CD,-263,6,6,9,431,8,24,43,2,18 +CHI,"CHATHAM ISLAND ASTRO 1971, NZ",IN,175,15,-38,15,113,15,-46,-42,-180,-174 +CHU,"CHUA ASTRO, Paraguay",IN,-134,6,229,9,-29,5,-33,-14,-69,-49 +COA,"CORREGO ALEGRE, Brazil",IN,-206,5,172,3,-6,5,-39,9,-80,-29 +DAL,"DABOLA, Guinea",CD,-83,15,37,15,124,15,1,19,-18,-4 +DID,"DECEPTION ISLAND",CD,260,20,12,20,-147,20,-65,-62,-62,-58 +DOB,"GUX 1 ASTRO, Guadalcanal Is.",IN,252,25,-209,25,-751,25,-12,-8,158,163 +EAS,"EASTER ISLAND 1967",IN,211,25,147,25,111,25,-29,-26,-111,-108 +ENW,"WAKE-ENIWETOK 1960",HO,102,3,52,3,-38,3,1,16,159,175 +EST,"ESTONIA, 1937",BR,374,2,150,3,588,3,52,65,16,34 +EUR-M,"EUROPEAN 1950, Mean (3 Param)",IN,-87,3,-98,8,-121,5,30,80,5,33 +EUR-A,"EUROPEAN 1950, Western Europe",IN,-87,3,-96,3,-120,3,30,78,-15,25 +EUR-B,"EUROPEAN 1950, Greece",IN,-84,25,-95,25,-130,25,30,48,14,34 +EUR-C,"EUROPEAN 1950, Norway & Finland",IN,-87,3,-95,5,-120,3,52,80,-2,38 +EUR-D,"EUROPEAN 1950, Portugal & Spain",IN,-84,5,-107,6,-120,3,30,49,-15,10 +EUR-E,"EUROPEAN 1950, Cyprus",IN,-104,15,-101,15,-140,15,33,37,31,36 +EUR-F,"EUROPEAN 1950, Egypt",IN,-130,6,-117,8,-151,8,16,38,19,42 +EUR-G,"EUROPEAN 1950, England, Channel",IN,-86,3,-96,3,-120,3,48,62,-10,3 +EUR-H,"EUROPEAN 1950, Iran",IN,-117,9,-132,12,-164,11,19,47,37,69 +EUR-I,"EUROPEAN 1950, Sardinia(Italy)",IN,-97,25,-103,25,-120,25,37,43,6,12 +EUR-J,"EUROPEAN 1950, Sicily(Italy)",IN,-97,20,-88,20,-135,20,35,40,10,17 +EUR-K,"EUROPEAN 1950, England, Ireland",IN,-86,3,-96,3,-120,3,48,62,-12,3 +EUR-L,"EUROPEAN 1950, Malta",IN,-107,25,-88,25,-149,25,34,38,12,16 +EUR-S,"EUROPEAN 1950, Iraq, Israel",IN,-103,-1,-106,-1,-141,-1,20,48,24,60 +EUR-T,"EUROPEAN 1950, Tunisia",IN,-112,25,-77,25,-145,25,24,43,2,18 +EUS,"EUROPEAN 1979",IN,-86,3,-98,3,-119,3,30,80,-15,24 +FAH,"OMAN",CD,-346,3,-1,3,224,9,10,32,46,65 +FLO,"OBSERVATORIO MET. 1939, Flores",IN,-425,20,-169,20,81,20,38,41,-33,-30 +FOT,"FORT THOMAS 1955, Leeward Is.",CD,-7,25,215,25,225,25,16,19,-64,-61 +GAA,"GAN 1970, Rep. of Maldives",IN,-133,25,-321,25,50,25,-2,9,71,75 +GEO,"GEODETIC DATUM 1949, NZ",IN,84,5,-22,3,209,5,-48,-33,165,180 +GIZ,"DOS 1968, Gizo Island",IN,230,25,-199,25,-752,25,-10,-7,155,158 +GRA,"GRACIOSA BASE SW 1948, Azores",IN,-104,3,167,3,-38,3,37,41,-30,-26 +GUA,"GUAM 1963",CC,-100,3,-248,3,259,3,12,15,143,146 +GSE,"GUNUNG SEGARA, Indonesia",BR,-403,-1,684,-1,41,-1,-6,9,106,121 +HEN,"HERAT NORTH, Afghanistan",IN,-333,-1,-222,-1,114,-1,23,44,55,81 +HER,"HERMANNSKOGEL, old Yugoslavia",BR,682,-1,-203,-1,480,-1,35,52,7,29 +HIT,"PROVISIONAL SOUTH CHILEAN 1963",IN,16,25,196,25,93,25,-64,-25,-83,-60 +HJO,"HJORSEY 1955, Iceland",IN,-73,3,46,3,-86,6,61,69,-27,-11 +HKD,"HONG KONG 1963",IN,-156,25,-271,25,-189,25,21,24,112,116 +HTN,"HU-TZU-SHAN, Taiwan",IN,-637,15,-549,15,-203,15,20,28,117,124 +IBE,"BELLEVUE (IGN), Efate Is.",IN,-127,20,-769,20,472,20,-20,-16,167,171 +IDN,"INDONESIAN 1974",ID,-24,25,-15,25,5,25,-16,11,89,146 +IND-B,"INDIAN, Bangladesh",EA,282,10,726,8,254,12,15,33,80,100 +IND-I,"INDIAN, India & Nepal",EC,295,12,736,10,257,15,2,44,62,105 +IND-P,"INDIAN, Pakistan",EF,283,-1,682,-1,231,-1,17,44,55,81 +INF-A,"INDIAN 1954, Thailand",EA,217,15,823,6,299,12,0,27,91,111 +ING-A,"INDIAN 1960, Vietnam 16N",EA,198,25,881,25,317,25,2,30,101,115 +ING-B,"INDIAN 1960, Con Son Island",EA,182,25,915,25,344,25,6,11,104,109 +INH-A,"INDIAN 1975, Thailand",EA,209,12,818,10,290,12,0,27,91,111 +INH-A1,"INDIAN 1975, Thailand",EA,210,3,814,2,289,3,0,27,91,111 +IRL,"IRELAND 1965",AM,506,3,-122,3,611,3,50,57,-12,-4 +ISG,"ISTS 061 ASTRO 1968, S Georgia",IN,-794,25,119,25,-298,25,-56,-52,-38,-34 +IST,"ISTS 073 ASTRO 1969, Diego Garc",IN,208,25,-435,25,-229,25,-10,-4,69,75 +JOH,"JOHNSTON ISLAND 1961",IN,189,25,-79,25,-202,25,15,19,-171,-168 +KAN,"KANDAWALA, Sri Lanka",EA,-97,20,787,20,86,20,4,12,77,85 +KEG,"KERGUELEN ISLAND 1949",IN,145,25,-187,25,103,25,-52,-47,65,74 +KEA,"KERTAU 1948, W Malaysia & Sing.",EE,-11,10,851,8,5,6,-5,12,94,112 +KUS,"KUSAIE ASTRO 1951, Caroline Is.",IN,647,25,1777,25,-1124,25,-1,12,134,167 +LCF,"L.C. 5 ASTRO 1961, Cayman Brac",CC,42,25,124,25,147,25,18,21,-83,-78 +LEH,"LEIGON, Ghana",CD,-130,2,29,3,364,2,-1,17,-9,7 +LIB,"LIBERIA 1964",CD,-90,15,40,15,88,15,-1,14,-17,-1 +LUZ-A,"LUZON, Philippines",CC,-133,8,-77,11,-51,9,3,23,115,128 +LUZ-B,"LUZON, Mindanao Island",CC,-133,25,-79,25,-72,25,4,12,120,128 +MAS,"MASSAWA, Ethiopia",BR,639,25,405,25,60,25,7,25,37,53 +MER,"MERCHICH, Morocco",CD,31,5,146,3,47,3,22,42,-19,5 +MID,"MIDWAY ASTRO 1961, Midway Is.",IN,403,25,-81,25,277,25,25,30,-180,-169 +MIK,"MAHE 1971, Mahe Is.",CD,41,25,-220,25,-134,25,-6,-3,54,57 +MIN-A,"MINNA, Cameroon",CD,-81,25,-84,25,115,25,-4,19,3,23 +MIN-B,"MINNA, Nigeria",CD,-92,3,-93,6,122,5,-1,21,-4,20 +MOD,"ROME 1940, Sardinia",IN,-225,25,-65,25,9,25,37,43,6,12 +MPO,"M'PORALOKO, Gabon",CD,-74,25,-130,25,42,25,-10,8,3,20 +MVS,"VITI LEVU 1916, Viti Levu Is.",CD,51,25,391,25,-36,25,-20,-16,176,180 +NAH-A,"NAHRWAN, Masirah Island (Oman)",CD,-247,25,-148,25,369,25,19,22,57,60 +NAH-B,"NAHRWAN, United Arab Emirates",CD,-249,25,-156,25,381,25,17,32,45,62 +NAH-C,"NAHRWAN, Saudi Arabia",CD,-243,20,-192,20,477,20,8,38,28,62 +NAP,"NAPARIMA, Trinidad & Tobago",IN,-10,15,375,15,165,15,8,13,-64,-59 +NAR-A,"NORTH AMERICAN 1983, Alaska",RF,0,2,0,2,0,2,48,78,-175,-135 +NAR-B,"NORTH AMERICAN 1983, Canada",RF,0,2,0,2,0,2,36,90,-150,-50 +NAR-C,"NORTH AMERICAN 1983, CONUS",RF,0,2,0,2,0,2,15,60,-135,-60 +NAR-D,"NORTH AMERICAN 1983, Mexico",RF,0,2,0,2,0,2,11,35,-122,-72 +NAR-E,"NORTH AMERICAN 1983, Aleutian",RF,-2,5,0,2,4,5,51,74,-180,180 +NAR-H,"NORTH AMERICAN 1983, Hawaii",RF,1,2,1,2,-1,2,17,24,-164,-153 +NAS-A,"NORTH AMERICAN 1927, Eastern US",CC,-9,5,161,5,179,8,18,55,-102,-60 +NAS-B,"NORTH AMERICAN 1927, Western US",CC,-8,5,159,3,175,3,19,55,-132,-87 +NAS-C,"NORTH AMERICAN 1927, CONUS",CC,-8,5,160,5,176,6,15,60,-135,-60 +NAS-D,"NORTH AMERICAN 1927, Alaska",CC,-5,5,135,9,172,5,47,78,-175,-130 +NAS-E,"NORTH AMERICAN 1927, Canada",CC,-10,15,158,11,187,6,36,90,-150,-50 +NAS-F,"NORTH AMERICAN 1927, Alberta/BC",CC,-7,8,162,8,188,6,43,65,-145,-105 +NAS-G,"NORTH AMERICAN 1927, E. Canada",CC,-22,6,160,6,190,3,38,68,-85,-45 +NAS-H,"NORTH AMERICAN 1927, Man/Ont",CC,-9,9,157,5,184,5,36,63,-108,-69 +NAS-I,"NORTH AMERICAN 1927, NW Terr.",CC,4,5,159,5,188,3,43,90,-144,-55 +NAS-J,"NORTH AMERICAN 1927, Yukon",CC,-7,5,139,8,181,3,53,75,-147,-117 +NAS-L,"NORTH AMERICAN 1927, Mexico",CC,-12,8,130,6,190,6,10,38,-122,-80 +NAS-N,"NORTH AMERICAN 1927, C. America",CC,0,8,125,3,194,5,3,25,-98,-77 +NAS-O,"NORTH AMERICAN 1927, Canal Zone",CC,0,20,125,20,201,20,3,15,-86,-74 +NAS-P,"NORTH AMERICAN 1927, Caribbean",CC,-3,3,142,9,183,12,8,29,-87,-58 +NAS-Q,"NORTH AMERICAN 1927, Bahamas",CC,-4,5,154,3,178,5,19,29,-83,-71 +NAS-R,"NORTH AMERICAN 1927, San Salv.",CC,1,25,140,25,165,25,23,26,-75,-74 +NAS-T,"NORTH AMERICAN 1927, Cuba",CC,-9,25,152,25,178,25,18,25,-87,-72 +NAS-U,"NORTH AMERICAN 1927, Greenland",CC,11,25,114,25,195,25,74,81,-74,-56 +NAS-V,"NORTH AMERICAN 1927, Aleutian E",CC,-2,6,152,8,149,10,50,58,-180,-161 +NAS-W,"NORTH AMERICAN 1927, Aleutian W",CC,2,10,204,10,105,10,50,58,169,180 +NSD,"NORTH SAHARA 1959, Algeria",CD,-186,25,-93,25,310,25,13,43,-15,18 +OEG,"OLD EGYPTIAN 1907",HE,-130,3,110,6,-13,8,16,38,19,42 +OGB-M,"ORDNANCE GB 1936, Mean (3 Para)",AA,375,10,-111,10,431,15,44,66,-14,7 +OGB-A,"ORDNANCE GB 1936, England",AA,371,5,-112,5,434,6,44,61,-12,7 +OGB-B,"ORDNANCE GB 1936, Eng., Wales",AA,371,10,-111,10,434,15,44,61,-12,7 +OGB-C,"ORDNANCE GB 1936, Scotland",AA,384,10,-111,10,425,10,49,66,-14,4 +OGB-D,"ORDNANCE GB 1936, Wales",AA,370,20,-108,20,434,20,46,59,-11,3 +OHA-M,"OLD HAWAIIAN (CC), Mean",CC,61,25,-285,20,-181,20,17,24,-164,-153 +OHA-A,"OLD HAWAIIAN (CC), Hawaii",CC,89,25,-279,25,-183,25,17,22,-158,-153 +OHA-B,"OLD HAWAIIAN (CC), Kauai",CC,45,20,-290,20,-172,20,20,24,-161,-158 +OHA-C,"OLD HAWAIIAN (CC), Maui",CC,65,25,-290,25,-190,25,19,23,-158,-154 +OHA-D,"OLD HAWAIIAN (CC), Oahu",CC,58,10,-283,6,-182,6,20,23,-160,-156 +OHI-M,"OLD HAWAIIAN (IN), Mean",IN,201,25,-228,20,-346,20,17,24,-164,-153 +OHI-A,"OLD HAWAIIAN (IN), Hawaii",IN,229,25,-222,25,-348,25,17,22,-158,-153 +OHI-B,"OLD HAWAIIAN (IN), Kauai",IN,185,20,-233,20,-337,20,20,24,-161,-158 +OHI-C,"OLD HAWAIIAN (IN), Maui",IN,205,25,-233,25,-355,25,19,23,-158,-154 +OHI-D,"OLD HAWAIIAN (IN), Oahu",IN,198,10,-226,6,-347,6,20,23,-160,-156 +PHA,"AYABELLE LIGHTHOUSE, Djibouti",CD,-79,25,-129,25,145,25,5,20,36,49 +PIT,"PITCAIRN ASTRO 1967",IN,185,25,165,25,42,25,-27,-21,-134,-119 +PLN,"PICO DE LAS NIEVES, Canary Is.",IN,-307,25,-92,25,127,25,26,31,-20,-12 +POS,"PORTO SANTO 1936, Madeira Is.",IN,-499,25,-249,25,314,25,31,35,-18,-15 +PRP-A,"PROV. S AMERICAN 1956, Bolivia",IN,-270,5,188,11,-388,14,-28,-4,-75,-51 +PRP-B,"PROV. S AMERICAN 1956, N Chile",IN,-270,25,183,25,-390,25,-45,-12,-83,-60 +PRP-C,"PROV. S AMERICAN 1956, S Chile",IN,-305,20,243,20,-442,20,-64,-20,-83,-60 +PRP-D,"PROV. S AMERICAN 1956, Colombia",IN,-282,15,169,15,-371,15,-10,16,-85,-61 +PRP-E,"PROV. S AMERICAN 1956, Ecuador",IN,-278,3,171,5,-367,3,-11,7,-85,-70 +PRP-F,"PROV. S AMERICAN 1956, Guyana",IN,-298,6,159,14,-369,5,-4,14,-67,-51 +PRP-G,"PROV. S AMERICAN 1956, Peru",IN,-279,6,175,8,-379,12,-24,5,-87,-63 +PRP-H,"PROV. S AMERICAN 1956, Venez",IN,-295,9,173,14,-371,15,-5,18,-79,-54 +PRP-M,"PROV. S AMERICAN 1956, Mean",IN,-288,17,175,27,-376,27,-64,18,-87,-51 +PTB,"POINT 58, Burkina Faso & Niger",CD,-106,25,-129,25,165,25,0,10,-15,25 +PTN,"POINT NOIRE 1948, Congo",CD,-148,25,51,25,-291,25,-11,10,5,25 +PUK,"PULKOVO 1942, Russia",KA,28,-1,-130,-1,-95,-1,36,89,-180,180 +PUR,"PUERTO RICO & Virgin Is.",CC,11,3,72,3,-101,3,16,20,-69,-63 +QAT,"QATAR NATIONAL",IN,-128,20,-283,20,22,20,19,32,45,57 +QUO,"QORNOQ, South Greenland",IN,164,25,138,25,-189,32,57,85,-77,-7 +REU,"REUNION, Mascarene Is.",IN,94,25,-948,25,-1262,25,-27,-12,47,65 +SAE,"SANTO (DOS) 1965",IN,170,25,42,25,84,25,-20,-11,163,172 +SAO,"SAO BRAZ, Santa Maria Is.",IN,-203,25,141,25,53,25,35,39,-27,-23 +SAP,"SAPPER HILL 1943, E Falkland Is",IN,-355,1,21,1,72,1,-54,-50,-61,-56 +SAN-M,"SOUTH AMERICAN 1969, Mean",SA,-57,15,1,6,-41,9,-65,-50,-90,-25 +SAN-A,"SOUTH AMERICAN 1969, Argentina",SA,-62,5,-1,5,-37,5,-62,-20,-76,-47 +SAN-B,"SOUTH AMERICAN 1969, Bolivia",SA,-61,15,2,15,-48,15,-28,-4,-75,-51 +SAN-C,"SOUTH AMERICAN 1969, Brazil",SA,-60,3,-2,5,-41,5,-39,9,-80,-29 +SAN-D,"SOUTH AMERICAN 1969, Chile",SA,-75,15,-1,8,-44,11,-64,-12,-83,-60 +SAN-E,"SOUTH AMERICAN 1969, Colombia",SA,-44,6,6,6,-36,5,-10,16,-85,-61 +SAN-F,"SOUTH AMERICAN 1969, Ecuador",SA,-48,3,3,3,-44,3,-11,7,-85,-70 +SAN-G,"SOUTH AMERICAN 1969, Guyana",SA,-53,9,3,5,-47,5,-4,14,-67,-51 +SAN-H,"SOUTH AMERICAN 1969, Paraguay",SA,-61,15,2,15,-33,15,-33,-14,-69,-49 +SAN-I,"SOUTH AMERICAN 1969, Peru",SA,-58,5,0,5,-44,5,-24,5,-87,-63 +SAN-J,"SOUTH AMERICAN 1969, Baltra",SA,-47,25,26,25,-42,25,-2,1,-92,-89 +SAN-K,"SOUTH AMERICAN 1969, Trinidad",SA,-45,25,12,25,-33,25,4,17,-68,-55 +SAN-L,"SOUTH AMERICAN 1969, Venezuela",SA,-45,3,8,6,-33,3,-5,18,-79,-54 +SCK,"SCHWARZECK, Namibia",BN,616,20,97,20,-251,20,-35,-11,5,31 +SGM,"SELVAGEM GRANDE 1938, Salvage Is,"I,N -28,9 2,5 -12,4 25,6,0 2,28,32,-18,-14 +SHB,"ASTRO DOS 71/4, St. Helena Is.",IN,-320,25,550,25,-494,25,-18,-14,-7,-4 +SOA,"SOUTH ASIA, Singapore",FA,7,25,-10,25,-26,25,0,3,102,106 +SPK-A,"S-42 (PULKOVO 1942), Hungary",KA,28,2,-121,2,-77,2,40,54,11,29 +SPK-B,"S-42 (PULKOVO 1942), Poland",KA,23,4,-124,2,-82,4,43,60,8,30 +SPK-C,"S-42 (PK42) Former Czechoslov.",KA,26,3,-121,3,-78,2,42,57,6,28 +SPK-D,"S-42 (PULKOVO 1942), Latvia",KA,24,2,-124,2,-82,2,50,64,15,34 +SPK-E,"S-42 (PK 1942), Kazakhstan",KA,15,25,-130,25,-84,25,35,62,41,93 +SPK-F,"S-42 (PULKOVO 1942), Albania",KA,24,3,-130,3,-92,3,34,48,14,26 +SPK-G,"S-42 (PULKOVO 1942), Romania",KA,28,3,-121,5,-77,3,38,54,15,35 +SRL,"SIERRA LEONE 1960",CD,-88,15,4,15,101,15,1,16,-19,-4 +TAN,"TANANARIVE OBSERVATORY 1925",IN,-189,-1,-242,-1,-91,-1,-34,-8,40,53 +TDC,"TRISTAN ASTRO 1968",IN,-632,25,438,25,-609,25,-39,-36,-14,-11 +TIL,"TIMBALAI 1948, Brunei & E Malay",EB,-679,10,669,10,-48,12,-5,15,101,125 +TOY-A,"TOKYO, Japan",BR,-148,8,507,5,685,8,19,51,119,156 +TOY-B,"TOKYO, South Korea",BR,-146,8,507,5,687,8,27,45,120,139 +TOY-B1,"TOKYO, South Korea",BR,-147,2,506,2,687,2,27,45,120,139 +TOY-C,"TOKYO, Okinawa",BR,-158,20,507,5,676,20,19,31,119,134 +TOY-M,"TOKYO, Mean",BR,-148,20,507,5,685,20,23,53,120,155 +TRN,"ASTRO TERN ISLAND (FRIG) 1961",IN,114,25,-116,25,-333,25,22,26,-168,-164 +VOI,"VOIROL 1874, Algeria",CD,-73,-1,-247,-1,227,-1,13,43,-15,18 +VOR,"VOIROL 1960, Algeria",CD,-123,25,-206,25,219,25,13,43,-15,18 +WAK,"WAKE ISLAND ASTRO 1952",IN,276,25,-57,25,149,25,17,21,164,168 +YAC,"YACARE, Uruguay",IN,-155,-1,171,-1,37,-1,-40,-25,-65,-47 +ZAN,"ZANDERIJ, Suriname",IN,-265,5,120,5,-358,8,-10,20,-76,-47 +KGS,"KOREAN GEO DATUM 1995, S Korea",WE,0,1,0,1,0,1,27,45,120,139 +SIR,"SIRGAS, South America",RF,0,1,0,1,0,1,-65,-50,-90,-25 +EUR-7,"EUROPEAN 1950, Mean (7 Param)",IN,-102,,-102,,-129,,,,,0.413,-0.184,0.385,0.0000024664 +OGB-7,"ORDNANCE GB 1936, Mean (7 Para)",AA,446,,-99,,544,,,,,,-0.945,-0.261,-0.435,-0.0000208927 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv new file mode 100644 index 00000000..2dd3b3a1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/gt_ellips.csv @@ -0,0 +1,24 @@ +NAME,CODE,A,B,RF +Airy 1830 ,AA,6377563.396,6356256.9090,299.324964600 +Modified Airy ,AM,6377340.189,6356034.4480,299.324964600 +Australian National ,AN,6378160.000,6356774.7190,298.250000000 +Bessel 1841(Namibia) ,BN,6377483.865,6356165.3830,299.152812800 +Bessel 1841 ,BR,6377397.155,6356078.9630,299.152812800 +Clarke 1866 ,CC,6378206.400,6356583.8000,294.978698200 +Clarke 1880 ,CD,6378249.145,6356514.8700,293.465000000 +Everest (India 1830) ,EA,6377276.345,6356075.4130,300.801700000 +Everest (E. Malasia, Brunei) ,EB,6377298.556,6356097.5500,300.801700000 +Everest 1956 (India) ,EC,6377301.243,6356100.2280,300.801700000 +Everest 1969 (West Malasia) ,ED,6377295.664,6356094.6680,300.801700000 +Everest 1948(W.Mals. & Sing.) ,EE,6377304.063,6356103.0390,300.801700000 +Everest (Pakistan) ,EF,6377309.613,6356109.5710,300.801700000 +Mod. Fischer 1960(South Asia) ,FA,6378155.000,6356773.3200,298.300000000 +Helmert 1906 ,HE,6378200.000,6356818.1700,298.300000000 +Hough 1960 ,HO,6378270.000,6356794.3430,297.000000000 +Indonesian 1974 ,ID,6378160.000,6356774.5040,298.247000000 +International 1924 ,IN,6378388.000,6356911.9460,297.000000000 +Krassovsky 1940 ,KA,6378245.000,6356863.0190,298.300000000 +GRS 80 ,RF,6378137.000,6356752.3141,298.257222101 +South American 1969 ,SA,6378160.000,6356774.7190,298.250000000 +WGS 72 ,WD,6378135.000,6356750.5200,298.260000000 +WGS 84 ,WE,6378137.000,6356752.3142,298.257223563 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/header.dxf b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/header.dxf new file mode 100644 index 00000000..3cf13f49 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/header.dxf @@ -0,0 +1,1124 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1018 + 9 +$ACADMAINTVER + 70 + 0 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$EXTMIN + 10 +30.0 + 20 +49.75 + 30 +0.0 + 9 +$EXTMAX + 10 +130.5 + 20 +163.1318914119703 + 30 +0.0 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +12.0 + 20 +9.0 + 9 +$ORTHOMODE + 70 + 0 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLMODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 1 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 + 1 + 9 +$TEXTSIZE + 40 +0.2 + 9 +$TRACEWID + 40 +0.05 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 + 256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 + 0 + 9 +$LUNITS + 70 + 2 + 9 +$LUPREC + 70 + 4 + 9 +$SKETCHINC + 40 +0.1 + 9 +$FILLETRAD + 40 +0.5 + 9 +$AUNITS + 70 + 0 + 9 +$AUPREC + 70 + 0 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 + 0 + 9 +$CHAMFERA + 40 +0.5 + 9 +$CHAMFERB + 40 +0.5 + 9 +$CHAMFERC + 40 +1.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 + 0 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 + 0 + 9 +$PDMODE + 70 + 0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 + 0 + 9 +$SPLINETYPE + 70 + 6 + 9 +$SPLINESEGS + 70 + 8 + 9 +$HANDSEED + 5 +44 + 9 +$SURFTAB1 + 70 + 6 + 9 +$SURFTAB2 + 70 + 6 + 9 +$SURFTYPE + 70 + 6 + 9 +$SURFU + 70 + 6 + 9 +$SURFV + 70 + 6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 + 0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 + 0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$WORLDVIEW + 70 + 1 + 9 +$SHADEDGE + 70 + 3 + 9 +$SHADEDIF + 70 + 70 + 9 +$TILEMODE + 70 + 1 + 9 +$MAXACTVP + 70 + 64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 + 0 + 9 +$PEXTMIN + 10 +1.000000000000000E+20 + 20 +1.000000000000000E+20 + 30 +1.000000000000000E+20 + 9 +$PEXTMAX + 10 +-1.000000000000000E+20 + 20 +-1.000000000000000E+20 + 30 +-1.000000000000000E+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +12.0 + 20 +9.0 + 9 +$UNITMODE + 70 + 0 + 9 +$VISRETAIN + 70 + 1 + 9 +$PLINEGEN + 70 + 0 + 9 +$PSLTSCALE + 70 + 1 + 9 +$TREEDEPTH + 70 + 3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 + 0 + 9 +$CMLSCALE + 40 +1.0 + 9 +$PROXYGRAPHICS + 70 + 1 + 9 +$MEASUREMENT + 70 + 0 + 9 +$CELWEIGHT +370 + -1 + 9 +$ENDCAPS +280 + 0 + 9 +$JOINSTYLE +280 + 0 + 9 +$LWDISPLAY +290 + 0 + 9 +$INSUNITS + 70 + 1 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 + 1 + 9 +$CEPSNTYPE +380 + 0 + 9 +$PSTYLEMODE +290 + 1 + 9 +$EXTNAMES +290 + 1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 + 0 + 9 +$SORTENTS +280 + 127 + 9 +$INDEXCTL +280 + 0 + 9 +$HIDETEXT +280 + 1 + 9 +$XCLIPFRAME +290 + 0 + 9 +$HALOGAP +280 + 0 + 9 +$OBSCOLOR + 70 + 257 + 9 +$OBSLTYPE +280 + 0 + 9 +$INTERSECTIONDISPLAY +280 + 0 + 9 +$INTERSECTIONCOLOR + 70 + 257 + 9 +$DIMASSOC +280 + 2 + 9 +$PROJECTNAME + 1 + + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 + 0 + 91 + 4 +280 + 0 +281 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +VPORT + 5 +29 +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +80.25 + 22 +106.4409457059851 + 13 +0.0 + 23 +0.0 + 14 +0.5 + 24 +0.5 + 15 +0.5 + 25 +0.5 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +113.3818914119703 + 41 +0.8863849310366128 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 1000 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 +281 + 0 + 65 + 1 +110 +0.0 +120 +0.0 +130 +0.0 +111 +1.0 +121 +0.0 +131 +0.0 +112 +0.0 +122 +1.0 +132 +0.0 + 79 + 0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LAYER + 5 +10 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 +100 +AcDbDimStyleTable + 0 +DIMSTYLE +105 +27 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 + 0 +340 +11 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +22 + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs new file mode 100644 index 00000000..43e0f474 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_BasicPropertyUnit.gfs @@ -0,0 +1,57 @@ + + + BasicPropertyUnit + BasicPropertyUnit + None + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + nationalCadastralReference + nationalCadastralReference + String + + + areaValue + areaValue + Real + + + areaValue_uom + areaValue@uom + String + + + validFrom + validFrom + String + + + validTo + validTo + String + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + administrativeUnit_href + administrativeUnit@href + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs new file mode 100644 index 00000000..6b271308 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralBoundary.gfs @@ -0,0 +1,60 @@ + + + CadastralBoundary + CadastralBoundary + + geometry + LineString + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + + + estimatedAccuracy + estimatedAccuracy + Real + + + estimatedAccuracy_uom + estimatedAccuracy@uom + String + + + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + + validFrom + validFrom + String + + + validTo + validTo + String + + + + parcel_href + parcel@href + StringList + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs new file mode 100644 index 00000000..129b0e2c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralParcel.gfs @@ -0,0 +1,81 @@ + + + CadastralParcel + CadastralParcel + + geometry + geometry + MultiPolygon + + + referencePoint + referencePoint + Point + + + areaValue + areaValue + Real + + + areaValue_uom + areaValue@uom + String + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + label + label + String + + + nationalCadastralReference + nationalCadastralReference + String + + + validFrom + validFrom + String + + + validTo + validTo + String + + + basicPropertyUnit_href + basicPropertyUnit@href + StringList + + + administrativeUnit_href + administrativeUnit@href + String + + + zoning_href + zoning@href + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs new file mode 100644 index 00000000..e564dff6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/inspire_cp_CadastralZoning.gfs @@ -0,0 +1,161 @@ + + + CadastralZoning + CadastralZoning + + + geometry + geometry + MultiPolygon + + + referencePoint + referencePoint + Point + + + + beginLifespanVersion + beginLifespanVersion + String + + + endLifespanVersion + endLifespanVersion + String + + + + estimatedAccuracy + estimatedAccuracy + Real + + + estimatedAccuracy_uom + estimatedAccuracy@uom + String + + + + inspireId_localId + inspireId|Identifier|localId + String + + + inspireId_namespace + inspireId|Identifier|namespace + String + + + + label + label + String + + + + level + level + String + + + + levelName + levelName|LocalisedCharacterString + StringList + + + levelName_locale + levelName|LocalisedCharacterString@locale + StringList + + + + + + name_language + name|GeographicalName|language + StringList + + + name_nativeness + name|GeographicalName|nativeness + StringList + + + name_nameStatus + name|GeographicalName|nameStatus + StringList + + + name_pronunciation + name|GeographicalName|pronunciation + StringList + + + name_spelling_text + name|GeographicalName|spelling|SpellingOfName|text + StringList + + + name_spelling_script + name|GeographicalName|spelling|SpellingOfName|script + StringList + + + + nationalCadastalZoningReference + nationalCadastalZoningReference + String + + + + originalMapScaleDenominator + originalMapScaleDenominator + Integer + + + + validFrom + validFrom + String + + + validTo + validTo + String + + + + upperLevelUnit_href + upperLevelUnit@href + String + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs new file mode 100644 index 00000000..1b066551 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmArea.gfs @@ -0,0 +1,59 @@ + + + AdmArea + AdmArea + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admCode + admCode + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs new file mode 100644 index 00000000..0214a6f6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmBdry.gfs @@ -0,0 +1,49 @@ + + + AdmBdry + AdmBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs new file mode 100644 index 00000000..5f80403a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_AdmPt.gfs @@ -0,0 +1,59 @@ + + + AdmPt + AdmPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admCode + admCode + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs new file mode 100644 index 00000000..007b1a33 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldA.gfs @@ -0,0 +1,54 @@ + + + BldA + BldA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs new file mode 100644 index 00000000..f456be87 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_BldL.gfs @@ -0,0 +1,54 @@ + + + BldL + BldL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs new file mode 100644 index 00000000..2f5a40e4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cntr.gfs @@ -0,0 +1,54 @@ + + + Cntr + Cntr + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + alti + alti + Real + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs new file mode 100644 index 00000000..f17b98ba --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommBdry.gfs @@ -0,0 +1,49 @@ + + + CommBdry + CommBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs new file mode 100644 index 00000000..e6666b1c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_CommPt.gfs @@ -0,0 +1,59 @@ + + + CommPt + CommPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admCode + admCode + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs new file mode 100644 index 00000000..7dbe45ea --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_Cstline.gfs @@ -0,0 +1,54 @@ + + + Cstline + Cstline + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs new file mode 100644 index 00000000..e86ba792 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_ElevPt.gfs @@ -0,0 +1,54 @@ + + + ElevPt + ElevPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + alti + alti + Real + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs new file mode 100644 index 00000000..b7810cf1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_GCP.gfs @@ -0,0 +1,94 @@ + + + GCP + GCP + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + advNo + advNo + String + + + orgName + orgName + String + + + type + type + String + + + gcpClass + gcpClass + String + + + gcpCode + gcpCode + String + + + name + name + String + + + B + B + Real + + + L + L + Real + + + alti + alti + Real + + + altiAcc + altiAcc + Integer + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs new file mode 100644 index 00000000..c13e3963 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_LeveeEdge.gfs @@ -0,0 +1,49 @@ + + + LeveeEdge + LeveeEdge + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs new file mode 100644 index 00000000..70921813 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RailCL.gfs @@ -0,0 +1,54 @@ + + + RailCL + RailCL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs new file mode 100644 index 00000000..9c4e1ac9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdASL.gfs @@ -0,0 +1,44 @@ + + + RdASL + RdASL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs new file mode 100644 index 00000000..7729d2db --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdArea.gfs @@ -0,0 +1,54 @@ + + + RdArea + RdArea + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs new file mode 100644 index 00000000..0675e934 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdCompt.gfs @@ -0,0 +1,59 @@ + + + RdCompt + RdCompt + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs new file mode 100644 index 00000000..de9fe09a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdEdg.gfs @@ -0,0 +1,59 @@ + + + RdEdg + RdEdg + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs new file mode 100644 index 00000000..24e2ab3e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdMgtBdry.gfs @@ -0,0 +1,49 @@ + + + RdMgtBdry + RdMgtBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs new file mode 100644 index 00000000..f63b17d6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RdSgmtA.gfs @@ -0,0 +1,59 @@ + + + RdSgmtA + RdSgmtA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + admOffice + admOffice + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs new file mode 100644 index 00000000..26361312 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_RvrMgtBdry.gfs @@ -0,0 +1,49 @@ + + + RvrMgtBdry + RvrMgtBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs new file mode 100644 index 00000000..438b7ded --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBAPt.gfs @@ -0,0 +1,49 @@ + + + SBAPt + SBAPt + pos + Point + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + sbaNo + sbaNo + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs new file mode 100644 index 00000000..9fc59d82 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBArea.gfs @@ -0,0 +1,54 @@ + + + SBArea + SBArea + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + sbaNo + sbaNo + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs new file mode 100644 index 00000000..b2915837 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_SBBdry.gfs @@ -0,0 +1,44 @@ + + + SBBdry + SBBdry + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs new file mode 100644 index 00000000..7eff1d67 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WA.gfs @@ -0,0 +1,54 @@ + + + WA + WA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs new file mode 100644 index 00000000..7d20ea2c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WL.gfs @@ -0,0 +1,54 @@ + + + WL + WL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs new file mode 100644 index 00000000..02652ca8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrA.gfs @@ -0,0 +1,54 @@ + + + WStrA + WStrA + area + Polygon + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs new file mode 100644 index 00000000..8341102c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/jpfgdgml_WStrL.gfs @@ -0,0 +1,54 @@ + + + WStrL + WStrL + loc + LineString + urn:ogc:def:crs:EPSG::6668 + + fid + fid + String + + + lfSpanFr + lfSpanFr|timePosition + String + + + lfSpanTo + lfSpanTo|timePosition + String + + + devDate + devDate|timePosition + String + + + orgGILvl + orgGILvl + String + + + orgMDId + orgMDId + String + + + vis + vis + String + + + type + type + String + + + name + name + String + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml new file mode 100644 index 00000000..4250c8cd --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xml @@ -0,0 +1,3290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd new file mode 100644 index 00000000..a47e24c6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/nitf_spec.xsd @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json new file mode 100644 index 00000000..af23826d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrinfo_output.schema.json @@ -0,0 +1,528 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Schema for ogrinfo -json output", + + "oneOf": [ + { + "$ref": "#/definitions/dataset" + } + ], + + "definitions": { + + "dataset": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "driverShortName": { + "type": "string" + }, + "driverLongName": { + "type": "string" + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/definitions/layer" + } + }, + "metadata": { + "$ref": "#/definitions/metadata" + }, + "domains": { + "$ref": "#/definitions/domains" + }, + "relationships": { + "$ref": "#/definitions/relationships" + }, + "rootGroup": { + "$ref": "#/definitions/group" + } + }, + "required": [ + "layers", + "metadata", + "domains" + ], + "additionalProperties": false + }, + + "layer": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/metadata" + }, + "fidColumnName": { + "type": "string" + }, + "featureCount": { + "type": "number" + }, + "features": { + "type": "array", + "items": { + "$ref": "https://geojson.org/schema/Feature.json" + } + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "geometryFields": { + "type": "array", + "items": { + "$ref": "#/definitions/geometryField" + } + } + }, + "required": [ + "name", + "metadata", + "geometryFields", + "fields" + ], + "additionalProperties": false + }, + + "metadata": { + "type": "object", + "$comment": "Object whose keys are metadata domain names. The empty string is a valid metadata domain name, and is used for the default domain.", + "patternProperties": { + "^.*$": { + "$ref": "#/definitions/metadataDomain" + } + } + }, + + "metadataDomain": { + "$comment": " The values of a metadadomain are key: string pairs, or arbitrary JSON objects for metadata domain names starting with the \"json:\" prefix.", + "any": [ + { + "type": "object" + }, + { + "type": "#/definitions/keyValueDict" + } + ] + }, + + "field": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/fieldType" + }, + "subType": { + "$ref": "#/definitions/fieldSubType" + }, + "width": { + "type": "integer" + }, + "precision": { + "type": "integer" + }, + "nullable": { + "type": "boolean" + }, + "uniqueConstraint": { + "type": "boolean" + }, + "defaultValue": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "domainName": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "timezone": { + "type": "string", + "pattern": "^(localtime|(mixed timezones)|UTC|((\\+|-)[0-9][0-9]:[0-9][0-9]))$" + } + }, + "required": [ + "name", + "type", + "nullable", + "uniqueConstraint" + ], + "additionalProperties": false + }, + + "fieldType": { + "enum": [ + "Integer", + "Integer64", + "Real", + "String", + "Binary", + "IntegerList", + "Integer64List", + "RealList", + "StringList", + "Date", + "Time", + "DateTime" + ] + }, + + "fieldSubType": { + "enum": [ + "None", + "Boolean", + "Int16", + "Float32", + "JSON", + "UUID" + ] + }, + + "geometryField": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "pattern": "^(Geometry|((Multi)?Point)|((Multi)?LineString)|((Multi)?Polygon)|GeometryCollection|((Multi)?Curve)|((Multi)?Surface)|CircularString|CompoundCurve|CurvePolygon|Tin|PolyhedralSurface|Triangle)[Z]?[M]?$" + }, + "nullable": { + "type": "boolean" + }, + "extent": { + "type": "array", + "items": { + "type": "number", + "minItems": 4, + "maxItems": 4 + } + }, + "extent3D": { + "type": "array", + "items": { + "type": [ + "null", + "number" + ], + "minItems": 6, + "maxItems": 6 + } + }, + "coordinateSystem": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/coordinateSystem" + } + ] + }, + "supportedSRSList": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "object", + "properties": { + "authority": { + "type": "string" + }, + "code": { + "type": "string" + } + } + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "wkt": { + "type": "string" + } + }, + "additionalProperties": false + } + ] + } + }, + "xyCoordinateResolution": { + "type": "number" + }, + "zCoordinateResolution": { + "type": "number" + }, + "mCoordinateResolution": { + "type": "number" + }, + "coordinatePrecisionFormatSpecificOptions": { + "type": "object" + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + + "coordinateSystem": { + "type": "object", + "properties": { + "wkt": { + "type": "string" + }, + "projjson": { + "$ref": "https://proj.org/schemas/v0.5/projjson.schema.json" + }, + "dataAxisToSRSAxisMapping": { + "type": "array", + "items": { + "type": "number", + "minItems": 2, + "maxItems": 3 + } + }, + "coordinateEpoch": { + "type": "number" + } + }, + "required": [ + "wkt", + "dataAxisToSRSAxisMapping" + ], + "additionalProperties": false + }, + + "domains": { + "type": "object", + "patternProperties": { + "^.*$": { + "$ref": "#/definitions/domain" + } + }, + "additionalProperties": false + }, + + "keyValueDict": { + "type": "object", + "patternProperties": { + "^.*$": {} + } + }, + + "domain": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "enum": [ + "coded", + "range", + "glob" + ] + }, + "fieldType": { + "$ref": "#/definitions/fieldType" + }, + "fieldSubType": { + "$ref": "#/definitions/fieldSubType" + }, + "glob": { + "$comment": "only present when type=coded", + "type": "string" + }, + "codedValues": { + "$comment": "only present when type=coded", + "$ref": "#/definitions/keyValueDict" + }, + "splitPolicy": { + "enum": [ + "default value", + "duplicate", + "geometry ratio" + ] + }, + "mergePolicy": { + "enum": [ + "default value", + "sum", + "geometry weighted" + ] + }, + "minValue": { + "$comment": "only present when type=range", + "any": [ + { + "type": "string " + }, + { + "type": "number" + } + ] + }, + "minValueIncluded": { + "$comment": "only present when type=range", + "type": "boolean" + }, + "maxValue": { + "$comment": "only present when type=range", + "any": [ + { + "type": "string " + }, + { + "type": "number" + } + ] + }, + "maxValueIncluded": { + "$comment": "only present when type=range", + "type": "boolean" + } + }, + "required": [ + "type", + "fieldType", + "splitPolicy", + "mergePolicy" + ], + "additionalProperties": false + }, + + "group": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "layerNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/definitions/group" + } + } + }, + "required": [ + "layerNames", + "groups" + ], + "additionalProperties": false + }, + + "relationships": { + "type": "object", + "patternProperties": { + "^.*$": { + "$ref": "#/definitions/relationship" + } + }, + "additionalProperties": false + }, + + "relationship": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Composite", + "Association", + "Aggregation" + ] + }, + "related_table_type": { + "type": "string" + }, + "cardinality": { + "type": "string", + "enum": [ + "OneToOne", + "OneToMany", + "ManyToOne", + "ManyToMany" + ] + }, + "left_table_name": { + "type": "string" + }, + "right_table_name": { + "type": "string" + }, + "left_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "right_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "mapping_table_name": { + "type": "string" + }, + "left_mapping_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "right_mapping_table_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "forward_path_label": { + "type": "string" + }, + "backward_path_label": { + "type": "string" + } + }, + "required": [ + "type", + "related_table_type", + "cardinality", + "left_table_name", + "right_table_name", + "left_table_fields", + "right_table_fields", + "forward_path_label", + "backward_path_label" + ], + "additionalProperties": false + } + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd new file mode 100644 index 00000000..74dc747d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ogrvrt.xsd @@ -0,0 +1,530 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required element + + + + + Optional element + + + + + SrcLayer or(eclusive) SrcSQL are required elements + + + + + + + + + + + + + + + + Use GeometryField.GeometryType for multi-geometry field support. + + + + + Use GeometryField.SRS for multi-geometry field support. + + + + + May be repeated + + + + + May be repeated + + + + + Use GeometryField.SrcRegion for multi-geometry field support. + + + + + Default to FALSE. + + + + + + Use GeometryField.ExtentXMin, etc... for multi-geometry field support. + + + + + + + + + + + + + + + + + + + + + + + + + + + User-facing name of the FID column. + + + + + + + + + + + + + + + + + + + + + Default to FALSE. + + + + + + Default to FALSE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defaults to the value of "name" if not specified. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defaults to Direct. + + + + + Name of the geometry field + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns" + + + + + Only used if encoding = "PointFromColumns". Defaults to TRUE. + + + + + Only used if no Field element is found at the OGRVRTLayer level + + + + + + + + + + + + + + + + + + + + + + + + + + Used if encoding = "WKT", "WKB" or "Shape" to find + the attribute field of the source layer. + Used also in multiple geometry fields scenario to retrieve the + source geometry field matching the target VRT geometry field. + + + + + + + + + + + + Defaults to FALSE. + + + + + + + + + A valid WKT for a POLYGON + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + May be repeated + + + + + May be repeated + + + + + May be repeated + + + + + + Use GeometryField.GeometryType for multi-geometry field support. + + + + + Use GeometryField.SRS for multi-geometry field support. + + + + + Defaults to Union if no Field or GeometryField element is specified. + + + + + May be repeated + + + + + May be repeated + + + + + Defaults to FALSE. + + + + + Name of fields in which to place the name of the source layer of each feature. + + + + + + Use GeometryField.ExtentXMin, etc. for multi-geometry field support. + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/osmconf.ini b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/osmconf.ini new file mode 100644 index 00000000..d44029f3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/osmconf.ini @@ -0,0 +1,134 @@ +# +# Configuration file for importing OSM data into OGR +# +# NOTE: remove the below "[general]" line for GDAL < 3.10 +[general] + +# put here the name of keys, or key=value, for ways that are assumed to be polygons if they are closed +# see http://wiki.openstreetmap.org/wiki/Map_Features +closed_ways_are_polygons=aeroway,amenity,boundary,building,craft,geological,historic,landuse,leisure,military,natural,office,place,shop,sport,tourism,highway=platform,public_transport=platform + +# Uncomment to avoid laundering of keys ( ':' turned into '_' ) +#attribute_name_laundering=no + +# Some tags, set on ways and when building multipolygons, multilinestrings or other_relations, +# are normally filtered out early, independent of the 'ignore' configuration below. +# Uncomment to disable early filtering. The 'ignore' lines below remain active. +#report_all_tags=yes + +# uncomment to report all nodes, including the ones without any (significant) tag +#report_all_nodes=yes + +# uncomment to report all ways, including the ones without any (significant) tag +#report_all_ways=yes + +# uncomment to specify the the format for the all_tags/other_tags field should be JSON +# instead of the default HSTORE formatting. +# Valid values for tags_format are "hstore" and "json" +#tags_format=json + +[points] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,barrier,highway,ref,address,is_in,place,man_made +# keys that, alone, are not significant enough to report a node as a OGR point +unsignificant=created_by,converted_by,source,time,ele,attribution +# keys that should NOT be reported in the "other_tags" field +ignore=created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +[lines] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,highway,waterway,aerialway,barrier,man_made,railway + +# type of attribute 'foo' can be changed with something like +#foo_type=Integer/Real/String/DateTime + +# keys that should NOT be reported in the "other_tags" field +ignore=created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +#computed_attributes must appear before the keywords _type and _sql +computed_attributes=z_order +z_order_type=Integer +# Formula based on https://github.com/openstreetmap/osm2pgsql/blob/master/style.lua#L13 +# [foo] is substituted by value of tag foo. When substitution is not wished, the [ character can be escaped with \[ in literals +# Note for GDAL developers: if we change the below formula, make sure to edit ogrosmlayer.cpp since it has a hardcoded optimization for this very precise formula +z_order_sql="SELECT (CASE [highway] WHEN 'minor' THEN 3 WHEN 'road' THEN 3 WHEN 'unclassified' THEN 3 WHEN 'residential' THEN 3 WHEN 'tertiary_link' THEN 4 WHEN 'tertiary' THEN 4 WHEN 'secondary_link' THEN 6 WHEN 'secondary' THEN 6 WHEN 'primary_link' THEN 7 WHEN 'primary' THEN 7 WHEN 'trunk_link' THEN 8 WHEN 'trunk' THEN 8 WHEN 'motorway_link' THEN 9 WHEN 'motorway' THEN 9 ELSE 0 END) + (CASE WHEN [bridge] IN ('yes', 'true', '1') THEN 10 ELSE 0 END) + (CASE WHEN [tunnel] IN ('yes', 'true', '1') THEN -10 ELSE 0 END) + (CASE WHEN [railway] IS NOT NULL THEN 5 ELSE 0 END) + (CASE WHEN [layer] IS NOT NULL THEN 10 * CAST([layer] AS INTEGER) ELSE 0 END)" + +[multipolygons] +# common attributes +# note: for multipolygons, osm_id=yes instantiates a osm_id field for the id of relations +# and a osm_way_id field for the id of closed ways. Both fields are exclusively set. +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,type,aeroway,amenity,admin_level,barrier,boundary,building,craft,geological,historic,land_area,landuse,leisure,man_made,military,natural,office,place,shop,sport,tourism +# keys that should NOT be reported in the "other_tags" field +ignore=area,created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +[multilinestrings] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,type +# keys that should NOT be reported in the "other_tags" field +ignore=area,created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes + +[other_relations] +# common attributes +osm_id=yes +osm_version=no +osm_timestamp=no +osm_uid=no +osm_user=no +osm_changeset=no + +# keys to report as OGR fields +attributes=name,type +# keys that should NOT be reported in the "other_tags" field +ignore=area,created_by,converted_by,source,time,ele,note,todo,openGeoDB:,fixme,FIXME +# uncomment to avoid creation of "other_tags" field +#other_tags=no +# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive +#all_tags=yes diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv new file mode 100644 index 00000000..13676d16 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_datum.csv @@ -0,0 +1,131 @@ +NAME,EPSG_DATUM_CODE,ELLIPSOID_CODE,DELTAX,DELTAY,DELTAZ +# +# Note : We have permission from Des Newman on behalf of OziExplorer to use this list. +# See : http://trac.osgeo.org/gdal/ticket/3929#comment:2 +# Note 2: EPSG_DATUM_CODE is used in priority to retrieve ellipsoid and datum shift values +# from the CSV files imported from EPSG database, that are more up-to-date. It +# overrides the values found in this file and from ozi_ellips.csv. See #3929 for more details. +# +Adindan,4201,5,-162,-12,206 # Africa - Eritrea, Ethiopia and Sudan +Afgooye,4205,15,-43,-163,45 # Somalia +Ain el Abd 1970,4204,14,-150,-251,-2 # Asia - Middle East - Bahrain, Kuwait and Saudi Arabia +Anna 1 Astro 1965,4708,2,-491,-22,435 # Cocos (Keeling) Islands +Arc 1950,4209,5,-143,-90,-294 # Africa - Botswana, Malawi, Zambia, Zimbabwe +Arc 1960,4210,5,-160,-8,-300 # Africa - Kenya, Tanzania and Uganda +Ascension Island 1958,4712,14,-207,107,52 # St Helena - Ascension Island +Astro B4 Sorol Atoll,4707,14,114,-116,-333 # USA - Hawaii - Tern Island and Sorel Atoll +Astro Beacon 1945,4709,14,145,75,-272 # Japan - Iwo Jima +Astro DOS 71/4,4710,14,-320,550,-494 # St Helena - St Helena Island +Astronomic Stn 1952,4711,14,124,-234,-25 # Japan - Minamitori-shima (Marcus Island) +Australian Geodetic 1966,4202,2,-133,-48,148 # Australasia - Australia and PNG - AGD66 +Australian Geodetic 1984,4203,2,-134,-48,149 # Australia - AGD84 +Australian Geocentric 1994 (GDA94),4283,11,0,0,0 # Australia - GDA94 +Austrian,4312,3,594,84,471 # MGI - Europe, Austria and former Yugoslavia +Bellevue (IGN),4714,14,-127,-769,472 # Vanuatu - southern islands +Bermuda 1957,4216,4,-73,213,296 # Bermuda +Bogota Observatory,4218,14,307,304,-318 # Colombia +Campo Inchauspe,4221,14,-148,136,90 # Argentina +Canton Astro 1966,4716,14,298,-304,-375 # Kiribati - Phoenix Islands +Cape,4222,5,-136,-108,-292 # Africa - Botswana and South Africa +Cape Canaveral,4717,4,-2,150,181 # North America - Bahamas and USA - Florida +Carthage,4223,5,-263,6,431 # Tunisia +CH-1903,4149,3,674,15,405 # Europe - Liechtenstein and Switzerland +Chatham 1971,4672,14,175,-38,113 # New Zealand - Chatham Islands +Chua Astro,4224,14,-134,229,-29 # South America - Brazil ; N Paraguay +Corrego Alegre,4225,14,-206,172,-6 # Brazil - Corrego Alegre +Djakarta (Batavia),4211,3,-377,681,-50 # Indonesia - Java +DOS 1968,,14,230,-199,-752 # Solomon Islands - Gizo Island : EPSG:4718 + EPSG:15805 (gcs.csv uses EPSG:15807) +Easter Island 1967,4719,14,211,147,111 # Chile - Easter Island +Egypt,,14,-130,-117,-151 # Egypt - EPSG code is 4199, but transformation parameters are missing in gcs.csv +European 1950,4230,14,-87,-98,-121 # Europe +European 1950 (Mean France),,14,-87,-96,-120 # Europe -France +European 1950 (Spain and Portugal),,14,-84,-107,-120 # Europe - Spain and Portugal +European 1979,4668,14,-86,-98,-119 # Europe - west +Finland Hayford,4123,14,-78,-231,-97 # Finland (KKJ) +Gandajika Base,4233,14,-133,-321,50 # Maldives +Geodetic Datum 1949,4272,14,84,-22,209 # New Zealand (NZGD49) +GGRS 87,4121,11,-199.87,74.79,246.62 # Greece +Guam 1963,4675,4,-100,-248,259 # Guam +GUX 1 Astro,4718,14,252,-209,-751 # Solomon Islands - Guadalcanal Island +Hartebeeshoek94,4148,20,0,0,0 # South Africa +Hermannskogel,3906,3,653,-212,449 # Boznia and Herzegovina; Croatia; FYR Macedonia; Montenegro; Serbia; Slovenia (MGI 1901) +Hjorsey 1955,4658,14,-73,46,-86 # Iceland +Hong Kong 1963,4739,14,-156,-271,-189 # China - Hong Kong +Hu-Tzu-Shan,4236,14,-634,-549,-201 # Taiwan +Indian Bangladesh,4682,6,289,734,257 # Bangladesh (Gulshan 303) +Indian Thailand,4240,6,214,836,303 # Thailand +Israeli,4281,23,-235,-85,264 # Asia - Middle East - Israel, Jordan and Palestine Territory (Palestine 1923) +Ireland 1965,4299,1,506,-122,611 # Europe - Ireland (Republic and Ulster) +ISTS 073 Astro 1969,4724,14,208,-435,-229 # British Indian Ocean Territory - Diego Garcia +Johnston Island,4725,14,191,-77,-204 # Johnston Island +Kandawala,4244,6,-97,787,86 # Sri Lanka +Kerguelen Island,4698,14,145,-187,103 # French Southern Territories - Kerguelen +Kertau 1948,4245,7,-11,851,5 # Asia - Malaysia (west) and Singapore +L.C. 5 Astro,4726,4,42,124,147 # Cayman Islands - Little Cayman and Cayman Brac +Liberia 1964,4251,5,-90,40,88 # Liberia +Luzon Mindanao,,4,-133,-79,-72 # Philippines - Mindanao (EPSG:4253 + EPSG:1162 Coordinate Transformation) +Luzon Philippines,4253,4,-133,-77,-51 # Philippines - excluding Mindanao +Mahe 1971,4256,5,41,-220,-134 # Seychelles +Marco Astro,4616,14,-289,-124,60 # Portugal - Selvagens islands (Madeira) +Massawa,4262,3,639,405,60 # Eritrea +Merchich,4261,5,31,146,47 # Morocco +Midway Astro 1961,4727,14,912,-58,1227 # Midway Islands - Sand and Eastern Islands +Minna,4263,5,-92,-93,122 # Nigeria +NAD27 Alaska,,4,-5,135,172 # Alaska (EPSG:4269 + EPSG:1176 Coordinate Transformation) +NAD27 Bahamas,,4,-4,154,178 # Bahamas (EPSG:4269 + EPSG:1177 Coordinate Transformation) +NAD27 Canada,,4,-10,158,187 # Canada (EPSG:4269 + EPSG:1172 Coordinate Transformation) +NAD27 Canal Zone,,4,0,125,201 # Panama (EPSG:4269 + EPSG:1184 Coordinate Transformation) +NAD27 Caribbean,,4,-7,152,178 # Caribbean +NAD27 Central,,4,0,125,194 # Central America (EPSG:4269 + EPSG:1171 Coordinate Transformation) +NAD27 CONUS,,4,-8,160,176 # Continental US (EPSG:4269 + EPSG:1173 Coordinate Transformation) +NAD27 Cuba,,4,-9,152,178 # Cuba (EPSG:4269 + EPSG:1185 Coordinate Transformation) +NAD27 Greenland,,4,11,114,195 # Greenland - Hayes Peninsula (EPSG:4269 + EPSG:1186 Coordinate Transformation) +NAD27 Mexico,,4,-12,130,190 # Mexico (EPSG:4269 + EPSG:1187 Coordinate Transformation) +NAD27 San Salvador,,4,1,140,165 # San Salvador (EPSG:4269 + EPSG:1178 Coordinate Transformation) +NAD83,4269,11,0,0,0 # North America +Nahrwn Masirah Ilnd,,5,-247,-148,369 # Oman - Masirah Island (EPSG:4270 + EPSG:1189) +Nahrwn Saudi Arbia,,5,-231,-196,482 # Saudi Arabia (EPSG:4270 + EPSG:1190) +Nahrwn United Arab,,5,-249,-156,381 # United Arab Emirates (UAE) (EPSG:4270 + EPSG:1191) +Naparima BWI,4271,14,-2,374,172 # Trinidad and Tobago - Tobago +NGO1948,4273,27,315,-217,528 # Norway +NTF France,4275,24,-168,-60,320 # France +Norsk,4817,27,278,93,474 # Norway (NGO 1948) +NZGD1949,4272,14,84,-22,209 # New Zealand +NZGD2000,4167,20,0,0,0 # New Zealand +Observatorio 1966,4182,14,-425,-169,81 # Portugal - western Azores +Old Egyptian,4229,12,-130,110,-13 # Egypt (1907) +Old Hawaiian,4135,4,61,-285,-181 # USA - Hawaii +Oman,4232,5,-346,-1,224 # Oman +Ord Srvy Grt Britn,4277,0,375,-111,431 # UK - Great Britain; Isle of Man +Pico De Las Nieves,4728,14,-307,-92,127 # Spain - Canary Islands +Pitcairn Astro 1967,4729,14,185,165,42 # Pitcairn Island +Potsdam Rauenberg DHDN,4314,3,606,23,413 # Germany +Prov So Amrican 1956,4248,14,-288,175,-376 # South America - PSAD56 +Prov So Chilean 1963,4254,14,16,196,93 # South America - Tierra del Fuego +Puerto Rico,4139,4,11,72,-101 # Caribbean - Puerto Rico and the Virgin Islands +Pulkovo 1942 (1),4284,15,28,-130,-95 # Europe - FSU +Pulkovo 1942 (2),4284,15,28,-130,-95 # Europe - FSU +Qatar National,4285,14,-128,-283,22 # Qatar +Qornoq,4287,14,164,138,-189 # Greenland +Reunion,4626,14,94,-948,-1262 # France - Reunion Island +Rijksdriehoeksmeting,4289,3,593,26,478 # Netherlands +Rome 1940,4806,14,-225,-65,9 # Italy - including San Marino and Vatican +RT 90,4124,3,498,-36,568 # Sweden +S42,4179,15,28,-121,-77 # Europe - eastern - S-42 +Santo (DOS),4730,14,170,42,84 # Vanuatu - northern islands +Sao Braz,4184,14,-203,141,53 # Portugal - eastern Azores +Sapper Hill 1943,4292,14,-355,16,74 # Falkland Islands +Schwarzeck,4293,21,616,97,-251 # Namibia +South American 1969,4291,16,-57,1,-41 # South America - SAD69 +South Asia,,8,7,-10,-26 # Singapore (unknown EPSG code) +Southeast Base,4615,14,-499,-249,314 # Porto Santo and Madeira Islands +Southwest Base,4183,14,-104,167,-38 # Faial, Graciosa, Pico, Sao Jorge and Terceira +Timbalai 1948,4298,6,-689,691,-46 # Asia - Brunei and East Malaysia +Tokyo,4301,3,-128,481,664 # Asia - Japan and Korea +Tristan Astro 1968,4734,14,-632,438,-609 # St Helena - Tristan da Cunha +Viti Levu 1916,4731,5,51,391,-36 # Fiji - Viti Levu +Wake-Eniwetok 1960,4732,13,101,52,-39 # Marshall Islands - Eniwetok, Kwajalein and Wake islands +WGS 72,4322,19,0,0,5 # World +WGS 84,4326,20,0,0,0 # World +Yacare,4309,14,-155,171,37 # Uruguay +Zanderij,4311,14,-265,120,-358 # Suriname diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv new file mode 100644 index 00000000..071e39e5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ozi_ellips.csv @@ -0,0 +1,35 @@ +ELLIPSOID_CODE,NAME,A,INVF +# +# Note : We have permission from Des Newman on behalf of OziExplorer to use this list. +# See : http://trac.osgeo.org/gdal/ticket/3929#comment:2 +# +0,Airy 1830,6377563.396,299.3249646 +1,Modified Airy,6377340.189,299.3249646 +2,Australian National,6378160.0,298.25 +3,Bessel 1841,6377397.155,299.1528128 +4,Clarke 1866,6378206.4,294.9786982 +5,Clarke 1880,6378249.145,293.465 +6,Everest (India 1830),6377276.345,300.8017 +7,Everest (1948),6377304.063,300.8017 +8,Modified Fischer 1960,6378155.0,298.3 +9,Everest (Pakistan),6377309.613,300.8017 +10,Indonesian 1974,6378160.0,298.247 +11,GRS 80,6378137.0,298.257222101 +12,Helmert 1906,6378200.0,298.3 +13,Hough 1960,6378270.0,297.0 +14,International 1924,6378388.0,297.0 +15,Krassovsky 1940,6378245.0,298.3 +16,South American 1969,6378160.0,298.25 +17,Everest (Malaysia 1969),6377295.664,300.8017 +18,Everest (Sabah Sarawak),6377298.556,300.8017 +19,WGS 72,6378135.0,298.26 +20,WGS 84,6378137.0,298.257223563 +21,Bessel 1841 (Namibia),6377483.865,299.1528128 +22,Everest (India 1956),6377301.243,300.8017 +23,Clarke 1880 Palestine,6378300.789,293.466 +24,Clarke 1880 IGN,6378249.2,293.466021 +25,Hayford 1909,6378388.0,296.959263 +26,Clarke 1858,6378350.87,294.26 +27,Bessel 1841 (Norway),6377492.0176,299.1528 +28,Plessis 1817 (France),6376523.0,308.6409971 +29,Hayford 1924,6378388.0,297.0 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_datum.txt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_datum.txt new file mode 100644 index 00000000..68507ea0 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_datum.txt @@ -0,0 +1,530 @@ +! +! From https://github.com/OSGeo/gdal/issues/8034, June 30, 2023 +! +! I, Michael Goldberg, on behalf of PCI Geomatics agree to allow the ellips.txt +! and datum.txt file to be distributed under the GDAL open source license. +! +! Michael Goldberg +! Development Manager +! PCI Geomatics +! +! +! NOTE: The range of "D950" to "D998" is set aside for +! the use of local customer development. +! +! And the range of "D-90" to "D-98" is set aside for +! the use of local customer development. +! +!For datums using a grid shift file entries are: +!DatumNumber,DatumName,EllipsoidNumber,Location,GridShiftTo,GridShiftFile,GridShiftFile +!If GridShiftTo is negative the shift is reversed +!For datums not using a grid shift file converting to WGS84 using coordinate frame rotation +! (EPSG:9607 which is opposite rotation to EPSG TOWGS84) entries are: +!DatumNumber,DatumName,EllipsoidNumber,XOffset,YOffset,ZOffset,Location,XSigma,YSigma,ZSigma,Doppler,XRotate,YRotate,ZRotate,Scale +"DoD World Geodetic System 1984, DMA TR 8350.2" +"4 JUL 1997, Third Printing, Includes 3 JAN 2000 Updates" +"D-01","NAD27 (USA, NADCON)","E000","Conterminous U.S.","D122","conus.los","conus.las" +"D-02","NAD83 (Deprecated - use D122)","E008",0,0,0,"Conterminous U.S.",2,2,2,354 +"D-03","NAD27 (Canada, NTv1)","E000","Canada","D122","grid.dac" +"D-04","NAD83 (Deprecated - use D122)","E008",0,0,0,"Canada",2,2,2,354 +"D-07","NAD27 (USA, NADCON)","E000","Alaska","D122","alaska.los","alaska.las" +"D-08","NAD83 (Deprecated - use D122)","E008",0,0,0,"Alaska",2,2,2,354 +"D-09","NAD27 (USA, NADCON)","E000","St. George","D122","stgeorge.los","stgeorge.las" +"D-10","NAD83 (Deprecated - use D122)","E008",0,0,0,"St. George",2,2,2,354 +"D-11","NAD27 (USA, NADCON)","E000","St. Lawrence","D122","stlrnc.los","stlrnc.las" +"D-12","NAD83 (Deprecated - use D122)","E008",0,0,0,"St. Lawrence",2,2,2,354 +"D-13","NAD27 (USA, NADCON)","E000","St. Paul","D122","stpaul.los","stpaul.las" +"D-14","NAD83 (Deprecated - use D122)","E008",0,0,0,"St. Paul",2,2,2,354 +"D-15","Old Hawaiian (USA, NADCON)","E000","Hawaii","D122","hawaii.los","hawaii.las" +"D-16","NAD83 (Deprecated - use D122)","E008",0,0,0,"Hawaii",2,2,2,354 +"D-17","NAD27 (USA, NADCON)","E000","Puerto Rico Virgin Islands","D122","prvi.los","prvi.las" +"D-18","NAD83 (Deprecated - use D122)","E008",0,0,0,"Puerto Rico Virgin Islands",2,2,2,354 +"D-21","GDA94 (from AGD66, NTv2)","E008","Australia","D029","A66_National_13_09_01_.gsb" +"D-22","GDA94 (from AGD84, NTv2)","E008","Australia","D030","National_84_02.07.01.gsb" +"D-24","NZGD2000 (NTv2)","E008","New Zealand","D510","nzgd2kgrid0005.gsb" +"D-25","GDA2020 (conformal, from GDA94, NTv2)","E008","Australia","D536","GDA94_GDA2020_conformal.gsb" +"D-26","GDA2020 (conformal and distortion, from GDA94, NTv2)","E008","Australia","D536","GDA94_GDA2020_conformal_and_distortion.gsb" +"D-27","GDA2020 (conformal, from GDA94, NTv2)","E008","Australia (Christmas Island)","D536","GDA94_GDA2020_conformal_christmas_island.gsb" +"D-28","GDA2020 (conformal, from GDA94, NTv2)","E008","Australia (Cocos Islands)","D536","GDA94_GDA2020_conformal_cocos_island.gsb" +"D-55","NAD83 (CSRS 2002) (NTv2)","E008","British Columbia","D122","BC_93_05.gsb" +"D-56","NAD27 (NTv2)","E000","British Columbia","-D-55","BC_27_05.gsb" +"D-57","NAD83 (CSRS) (NTv2)","E008","BC (CRD)","D122","CRD93_00.gsb" +"D-58","NAD27 (NTv2)","E000","BC (CRD)","-D-57","CRD27_00.gsb" +"D-59","NAD83 (CSRS) (NTv2)","E008","BC (Vancouver Island)","D122","NVI93_05.gsb" +"D-62","NAD27 (NTv2)","E000","Ontario (Toronto)","-D-65","TO27CSv1.gsb" +"D-63","NAD27 (NTv2)","E000","Ontario","-D-65","ON27CSv1.gsb" +"D-64","NAD27 (1976) (NTv2)","E000","Ontario","-D-65","ON76CSv1.gsb" +"D-65","NAD83 (CSRS98) (NTv2)","E008","Ontario","D122","ON83CSv1.gsb" +"D-67","NAD83 (SCRS) (NTv2)","E008","Quebec","D-68","na27scrs.gsb" +"D-68","NAD27 (NTv2)","E000","Quebec","-D122","na27na83.gsb" +"D-71","NAD83 (SCRS) (NTv2)","E008","Quebec","D-72","cq77scrs.gsb" +"D-72","NAD27 (CGQ77) (NTv2)","E000","Quebec","D122","cq77na83.gsb" +"D-75","NAD83 (SCRS) (NTv2)","E008","Quebec","D122","na83scrs.gsb" +"D-76","NAD27 (NTv2)","E000","Saskatchewan","-D-79","sk27-98.gsb" +"D-77","NAD27 (NTv2)","E000","Saskatchewan","-D122","sk27-83.gsb" +"D-79","NAD83 (CSRS98) (NTv2)","E008","Saskatchewan","-D122","sk83-98.gsb" +"D-81","NAD83 (CSRS98) (NTv2)","E008","Nova Scotia","D895","ns778301.gsb" +"D-82","ATS77 (NTv2)","E910","Nova Scotia","-D122","GS7783.GSB" +"D-83","NAD83 (CSRS98) (NTv2)","E008","Prince Edward Island","D895","pe7783v2.gsb" +"D-84","NAD83 (CSRS98) (NTv2)","E008","New Brunswick","D122","nb2783v2.gsb" +"D-85","NAD83 (CSRS98) (NTv2)","E008","New Brunswick","D895","nb7783v2.gsb" +"D-86","NAD27 (NTv2)","E000","Canada","-D122","ntv2_0.gsb" +"D-87","NAD83 (CSRS98) (NTv2)","E008","Alberta","D122","ABCSRSV4.DAC" +"D-88","NAD27 (1976) (NTv2)","E000","Ontario","D122","may76v20.gsb" +"D800","Normal Sphere","E019",0,0,0,"",0,0,0,0 +"D000","WGS 1984","E012",0,0,0,"Global Definition",0,0,0,0 +"D001","WGS 1972","E005",0,0,0,"Global Definition",3,3,3,1 +"D002","Adindan","E001",-166,-15,204,"MEAN FOR Ethiopia, Sudan",5,5,3,22 +"D003","Adindan","E001",-118,-14,218,"Burkina Faso",25,25,25,1 +"D004","Adindan","E001",-134,-2,210,"Cameroon",25,25,25,1 +"D005","Adindan","E001",-165,-11,206,"Ethiopia",3,3,3,8 +"D006","Adindan","E001",-123,-20,220,"Mali",25,25,25,1 +"D007","Adindan","E001",-128,-18,224,"Senegal",25,25,25,2 +"D008","Adindan","E001",-161,-14,205,"Sudan",3,5,3,14 +"D009","Afgooye","E015",-43,-163,45,"Somalia",25,25,25,1 +"D010","Ain el Abd 1970","E004",-150,-250,-1,"Bahrain",25,25,25,2 +"D011","Ain el Abd 1970","E004",-143,-236,7,"Saudi Arabia",10,10,10,9 +"D012","Anna 1 Astro 1965","E014",-491,-22,435,"Cocos Islands",25,25,25,1 +"D013","Antigua Island Astro 1943","E001",-270,13,62,"Antigua (Leeward Islands)",25,25,25,1 +"D014","Arc 1950","E001",-143,-90,-294,"MEAN Solution",20,33,20,41 +"D015","Arc 1950","E001",-138,-105,-289,"Botswana",3,5,3,9 +"D016","Arc 1950","E001",-153,-5,-292,"Burundi",20,20,20,3 +"D017","Arc 1950","E001",-125,-108,-295,"Lesotho",3,3,8,5 +"D018","Arc 1950","E001",-161,-73,-317,"Malawi",9,24,8,6 +"D019","Arc 1950","E001",-134,-105,-295,"Swaziland",15,15,15,4 +"D020","Arc 1950","E001",-169,-19,-278,"Zaire",25,25,25,2 +"D021","Arc 1950","E001",-147,-74,-283,"Zambia",21,21,27,5 +"D022","Arc 1950","E001",-142,-96,-293,"Zimbabwe",5,8,11,10 +"D023","Arc 1960","E001",-160,-6,-302,"MEAN FOR Kenya, Tanzania",20,20,20,25 +"D024","Ascension Island 1958","E004",-205,107,53,"Ascension Island",25,25,25,2 +"D025","Astro Beacon E 1945","E004",145,75,-272,"Iwo Jima",25,25,25,1 +"D026","Astro DOS 71/4","E004",-320,550,-494,"St Helena Island",25,25,25,1 +"D027","Astro Tern Island (FRIG) 1961","E004",114,-116,-333,"Tern Island",25,25,25,1 +"D028","Astronomical Station 1952","E004",124,-234,-25,"Marcus Island",25,25,25,1 +"D029","Australian Geodetic 1966","E014",-133,-48,148,"Australia & Tasmania",3,3,3,105 +"D030","Australian Geodetic 1984","E014",-134,-48,149,"Australia & Tasmania",2,2,2,90 +"D031","Ayabelle Lighthouse","E001",-79,-129,145,"Djibouti",25,25,25,1 +"D032","Bellevue (IGN)","E004",-127,-769,472,"Efate & Erromango Islands",20,20,20,3 +"D033","Bermuda 1957","E000",-73,213,296,"Bermuda",20,20,20,3 +"D034","Bissau","E004",-173,253,27,"Guinea-Bissau",25,25,25,2 +"D035","Bogota Observatory","E004",307,304,-318,"Colombia",6,5,6,7 +"D036","Bukit Rimpah","E002",-384,664,-48,"Indonesia (Bangka & Belitung Islands)",-1,-1,-1,0 +"D037","Camp Area Astro","E004",-104,-129,239,"Antarctica (McMurdo Camp Area)",-1,-1,-1,0 +"D038","Campo Inchauspe 1969","E004",-148,136,90,"Argentina",5,5,5,20 +"D039","Canton Astro 1966","E004",298,-304,-375,"Phoenix Islands",15,15,15,4 +"D040","Cape (Superceded by D517)","E001",-136,-108,-292,"South Africa",3,6,6,5 +"D041","Cape Canaveral","E000",-2,151,181,"MEAN FOR Florida,Bahamas",3,3,3,19 +"D042","Carthage","E001",-263,6,431,"Tunisia",6,9,8,5 +"D043","Chatham Island Astro 1971","E004",175,-38,113,"New Zealand (Chatham Island)",15,15,15,4 +"D044","Chua Astro","E004",-134,229,-29,"Paraguay",6,9,5,6 +"D045","Corrego Alegre","E004",-206,172,-6,"Brazil",5,3,5,17 +"D046","Dabola","E001",-83,37,124,"Guinea",15,15,15,4 +"D047","Djakarta (Batavia)","E002",-377,681,-50,"Indonesia (Sumatra)",3,3,3,5 +"D048","DOS 1968","E004",230,-199,-752,"New Georgia Islands (Gizo Island)",25,25,25,1 +"D049","Easter Island 1967","E004",211,147,111,"Easter Island",25,25,25,1 +"D050","European 1950","E004",-87,-98,-121,"MEAN FOR Europe,",3,8,5,85 +"D051","European 1950","E004",-87,-96,-120,"MEAN FOR Western Europe,",3,3,3,52 +"D052","European 1950","E004",-103,-106,-141,"MEAN FOR Iraq, Israel, Jordan, Lebanon",-1,-1,-1,0 +"D053","European 1950","E004",-104,-101,-140,"Cyprus",15,15,15,4 +"D054","European 1950","E004",-130,-117,-151,"Egypt",6,8,8,14 +"D055","European 1950","E004",-86,-96,-120,"MEAN FOR England, Channel Islands, Ireland",3,3,3,40 +"D056","European 1950","E004",-87,-95,-120,"Finland, Norway",3,5,3,20 +"D057","European 1950","E004",-84,-95,-130,"Greece",25,25,25,2 +"D058","European 1950","E004",-117,-132,-164,"Iran",9,12,11,27 +"D059","European 1950","E004",-97,-103,-120,"Italy (Sardinia)",25,25,25,2 +"D060","European 1950","E004",-97,-88,-135,"Italy (Sicily)",20,20,20,3 +"D061","European 1950","E004",-107,-88,-149,"Malta",25,25,25,1 +"D062","European 1950","E004",-84,-107,-120,"Portugal, Spain",5,6,3,18 +"D063","European 1979","E004",-86,-98,-119,"MEAN Solution",3,3,3,22 +"D064","Fort Thomas 1955","E001",-7,215,225,"Nevis, St. Kitts (Leeward Islands)",25,25,25,2 +"D065","Gan 1970","E004",-133,-321,50,"Republic of Maldives",25,25,25,1 +"D066","Geodetic Datum 1949","E004",84,-22,209,"New Zealand",5,3,5,14 +"D067","Graciosa Base SW 1948","E004",-104,167,-38,"Azores (Faial,Graciosa,Pico)",3,3,3,5 +"D068","Guam 1963","E000",-100,-248,259,"Guam",3,3,3,5 +"D069","Gunung Segara","E002",-403,684,41,"Indonesia (Kalimantan)",-1,-1,-1,0 +"D070","GUX 1 Astro","E004",252,-209,-751,"Guadalcanal Island",25,25,25,1 +"D071","Herat North","E004",-333,-222,114,"Afghanistan",-1,-1,-1,0 +"D072","Hjorsey 1955","E004",-73,46,-86,"Iceland",3,3,6,6 +"D073","Hong Kong 1963","E004",-156,-271,-189,"Hong Kong",25,25,25,2 +"D074","Hu-Tzu-Shan","E004",-637,-549,-203,"Taiwan",15,15,15,4 +"D075","Indian","E006",282,726,254,"Bangladesh",10,8,12,6 +"D076","Indian","E901",295,736,257,"India, Nepal",12,10,15,7 +"D077","Indian 1954","E006",217,823,299,"Thailand",15,6,12,11 +"D078","Indian 1975 (Cycle 1)","E006",210,814,289,"Thailand",3,2,3,62 +"D079","Ireland 1965","E011",506,-122,611,"Ireland",3,3,3,7 +"D080","ISTS 061 Astro 1968","E004",-794,119,-298,"South Georgia Islands",25,25,25,1 +"D081","ISTS 073 Astro 1969","E004",208,-435,-229,"Diego Garcia",25,25,25,2 +"D082","Johnston Island 1961","E004",189,-79,-202,"Johnston Island",25,25,25,1 +"D083","Kandawala","E006",-97,787,86,"Sri Lanka",20,20,20,3 +"D084","Kerguelen Island 1949","E004",145,-187,103,"Kerguelen Island",25,25,25,1 +"D085","Kertau 1948","E010",-11,851,5,"West Malaysia & Singapore",10,8,6,6 +"D086","Kusaie Astro 1951","E004",647,1777,-1124,"Caroline Islands",25,25,25,1 +"D087","L. C. 5 Astro 1961","E000",42,124,147,"Cayman Brac Island",25,25,25,1 +"D088","Leigon","E001",-130,29,364,"Ghana",2,3,2,8 +"D089","Liberia 1964","E001",-90,40,88,"Liberia",15,15,15,4 +"D090","Luzon","E000",-133,-77,-51,"Philippines (Excluding Mindanao)",8,11,9,6 +"D091","Luzon","E000",-133,-79,-72,"Philippines (Mindanao)",25,25,25,1 +"D092","Mahe 1971","E001",41,-220,-134,"Mahe Island",25,25,25,1 +"D093","Massawa","E002",639,405,60,"Ethiopia (Eritrea)",25,25,25,1 +"D094","Merchich","E001",31,146,47,"Morocco",5,3,3,9 +"D095","Midway Astro 1961","E004",912,-58,1227,"Midway Islands",25,25,25,1 +"D096","Minna","E001",-81,-84,115,"Cameroon",25,25,25,2 +"D097","Minna","E001",-92,-93,122,"Nigeria",3,6,5,6 +"D098","Montserrat Island Astro 1958","E001",174,359,365,"Montserrat (Leeward Islands)",25,25,25,1 +"D099","M'Poraloko","E001",-74,-130,42,"Gabon",25,25,25,1 +"D100","Nahrwan","E001",-247,-148,369,"Oman (Masirah Island)",25,25,25,2 +"D101","Nahrwan","E001",-243,-192,477,"Saudi Arabia",20,20,20,3 +"D102","Nahrwan","E001",-249,-156,381,"United Arab Emirates",25,25,25,2 +"D103","Naparima BWI","E004",-10,375,165,"Trinidad & Tobago",15,15,15,4 +"D104","North American 1927","E000",-3,142,183,"MEAN FOR Caribbean",3,9,12,15 +"D105","North American 1927","E000",0,125,194,"MEAN FOR Central America",8,3,5,19 +"D106","North American 1927","E000",-10,158,187,"MEAN FOR Canada",15,11,6,112 +"D107","North American 1927","E000",-8,160,176,"MEAN FOR CONUS",5,5,6,405 +"D108","North American 1927","E000",-9,161,179,"MEAN FOR CONUS (East of Mississippi River)",5,5,8,129 +"D109","North American 1927","E000",-8,159,175,"MEAN FOR CONUS (West of Mississippi River)",5,3,3,276 +"D110","North American 1927","E000",-5,135,172,"Alaska",5,9,5,47 +"D111","North American 1927","E000",-4,154,178,"Bahamas (Except San Salvador Island)",5,3,5,11 +"D112","North American 1927","E000",1,140,165,"Bahamas (San Salvador Island)",25,25,25,1 +"D113","North American 1927","E000",-7,162,188,"Canada (Alberta, British Columbia)",8,8,6,25 +"D114","North American 1927","E000",-9,157,184,"Canada (Manitoba, Ontario)",9,5,5,25 +"D115","North American 1927","E000",-22,160,190,"Canada (Atlantic Provinces)",6,6,3,37 +"D116","North American 1927","E000",4,159,188,"Canada (Northwest Territories, Saskatchewan)",5,5,3,17 +"D117","North American 1927","E000",-7,139,181,"Canada (Yukon)",5,8,3,8 +"D118","North American 1927","E000",0,125,201,"Canal Zone",20,20,20,3 +"D119","North American 1927","E000",-9,152,178,"Cuba",25,25,25,1 +"D120","North American 1927","E000",11,114,195,"Greenland (Hayes Peninsula)",25,25,25,2 +"D121","North American 1927","E000",-12,130,190,"Mexico",8,6,6,22 +"D122","North American 1983","E008",0,0,0,"Alaska, Canada, CONUS, Central America, Mexico",2,2,2,354 +"D123","Observatorio Metereo. 1939","E004",-425,-169,81,"Azores (Corvo & Flores Islands)",20,20,20,3 +"D124","Old Egyptian 1907","E904",-130,110,-13,"Egypt",3,6,8,14 +"D125","Old Hawaiian (Clarke 1866)","E000",61,-285,-181,"MEAN FOR Hawaii, Kauai, Maui, Oahu",25,20,20,15 +"D126","Old Hawaiian (Clarke 1866)","E000",89,-279,-183,"Hawaii",25,25,25,2 +"D127","Old Hawaiian (Clarke 1866)","E000",45,-290,-172,"Kauai",20,20,20,3 +"D128","Old Hawaiian (Clarke 1866)","E000",65,-290,-190,"Maui",25,25,25,2 +"D129","Old Hawaiian (Clarke 1866)","E000",58,-283,-182,"Oahu",10,6,6,8 +"D130","Oman","E001",-346,-1,224,"Oman",3,3,9,7 +"D131","Ord. Survey G. Britain 1936","E009",375,-111,431,"MEAN Solution",10,10,15,38 +"D132","Ord. Survey G. Britain 1936","E009",371,-112,434,"England",5,5,6,21 +"D133","Ord. Survey G. Britain 1936","E009",371,-111,434,"England, Isle of Man, Wales",10,10,15,25 +"D134","Ord. Survey G. Britain 1936","E009",384,-111,425,"Scotland, Shetland Islands",10,10,10,13 +"D135","Ord. Survey G. Britain 1936","E009",370,-108,434,"Wales",20,20,20,3 +"D136","Pico de las Nieves","E004",-307,-92,127,"Canary Islands",25,25,25,1 +"D137","Pitcairn Astro 1967","E004",185,165,42,"Pitcairn Island",25,25,25,1 +"D138","Point 58","E001",-106,-129,165,"MEAN FOR Burkina Faso & Niger",25,25,25,2 +"D139","Pointe Noire 1948","E001",-148,51,-291,"Congo",25,25,25,1 +"D140","Porto Santo 1936","E004",-499,-249,314,"Porto Santo, Madeira Islands",25,25,25,2 +"D141","Provisional S. American 1956","E004",-288,175,-376,"MEAN Solution",17,27,27,63 +"D142","Provisional S. American 1956","E004",-270,188,-388,"Bolivia",5,11,14,5 +"D143","Provisional S. American 1956","E004",-270,183,-390,"Chile (Northern, Near 19dS)",25,25,25,1 +"D144","Provisional S. American 1956","E004",-305,243,-442,"Chile (Southern, Near 43dS)",20,20,20,3 +"D145","Provisional S. American 1956","E004",-282,169,-371,"Colombia",15,15,15,4 +"D146","Provisional S. American 1956","E004",-278,171,-367,"Ecuador",3,5,3,11 +"D147","Provisional S. American 1956","E004",-298,159,-369,"Guyana",6,14,5,9 +"D148","Provisional S. American 1956","E004",-279,175,-379,"Peru",6,8,12,6 +"D149","Provisional S. American 1956","E004",-295,173,-371,"Venezuela",9,14,15,24 +"D150","Provisional S. Chilean 1963","E004",16,196,93,"Chile (South, Near 53dS) (Hito XVIII)",25,25,25,2 +"D151","Puerto Rico","E000",11,72,-101,"Puerto Rico, Virgin Islands",3,3,3,11 +"D152","Qatar National Datum 1995","E004",-127.78098,-283.37477,21.24081,"Qatar",20,20,20,3 +"D153","Qornoq","E004",164,138,-189,"Greenland (South)",25,25,32,2 +"D154","Reunion","E004",94,-948,-1262,"Mascarene Islands",25,25,25,1 +"D155","Rome 1940","E004",-225,-65,9,"Italy (Sardinia)",25,25,25,1 +"D156","Santo (DOS) 1965","E004",170,42,84,"Espirito Santo Island",25,25,25,1 +"D157","Sao Braz","E004",-203,141,53,"Azores (Sao Miguel, Santa Maria Islands)",25,25,25,2 +"D158","Sapper Hill 1943","E004",-355,21,72,"East Falkland Island",1,1,1,5 +"D159","Schwarzeck","E900",616,97,-251,"Namibia",20,20,20,3 +"D160","Selvagem Grande 1938","E004",-289,-124,60,"Salvage Islands",25,25,25,1 +"D161","SGS 85","E905",3,9,-9,"Soviet Geodetic System 1985",10,10,10,1 +"D162","South American 1969 (SAD69)","E907",-57,1,-41,"MEAN Solution,",15,6,9,84 +"D163","South American 1969","E907",-62,-1,-37,"Argentina",5,5,5,10 +"D164","South American 1969","E907",-61,2,-48,"Bolivia",15,15,15,4 +"D165","South American 1969 (old)","E907",-60,-2,-41,"Brazil",3,5,5,22 +"D166","South American 1969","E907",-75,-1,-44,"Chile",15,8,11,9 +"D167","South American 1969","E907",-44,6,-36,"Colombia",6,6,5,7 +"D168","South American 1969","E907",-48,3,-44,"Ecuador",3,3,3,11 +"D169","South American 1969","E907",-47,26,-42,"Ecuador (Baltra, Galapagos)",25,25,25,1 +"D170","South American 1969","E907",-53,3,-47,"Guyana",9,5,5,5 +"D171","South American 1969","E907",-61,2,-33,"Paraguay",15,15,15,4 +"D172","South American 1969","E907",-58,0,-44,"Peru",5,5,5,6 +"D173","South American 1969","E907",-45,12,-33,"Trinidad & Tobago",25,25,25,1 +"D174","South American 1969","E907",-45,8,-33,"Venezuela",3,6,3,5 +"D175","South Asia","E013",7,-10,-26,"Singapore",25,25,25,1 +"D176","Tananarive Observatory 1925","E004",-189,-242,-91,"Madagascar",-1,-1,-1,0 +"D177","Timbalai 1948","E903",-679,669,-48,"Brunei, East Malaysia (Sabah, Sarawak)",10,10,12,8 +"D178","Tokyo","E002",-148,507,685,"MEAN FOR Japan, Korea, Okinawa",20,5,20,31 +"D179","Tokyo","E002",-148,507,685,"Japan",8,5,8,16 +"D180","Tokyo (Cycle 1)","E002",-147,506,687,"South Korea",2,2,2,29 +"D181","Tokyo","E002",-158,507,676,"Okinawa",20,5,20,3 +"D182","Tristan Astro 1968","E004",-632,438,-609,"Tristan da Cunha",25,25,25,1 +"D183","Viti Levu 1916","E001",51,391,-36,"Fiji (Viti Levu Island)",25,25,25,1 +"D184","Wake-Eniwetok 1960","E016",102,52,-38,"Marshall Islands",3,3,3,10 +"D185","Wake Island Astro 1952","E004",276,-57,149,"Wake Atoll",25,25,25,2 +"D186","WGS 1972","E005",0,0,0,"Global Definition",3,3,3,1 +"D187","Yacare","E004",-155,171,37,"Uruguay",-1,-1,-1,0 +"D188","Zanderij","E004",-265,120,-358,"Suriname",5,5,8,5 +"D189","American Samoa 1962","E000",-115,118,426,"American Samoa Is",25,25,25,2 +"D190","Arc 1960","E001",-157,-2,-299,"Kenya",4,3,3,24 +"D191","Arc 1960","E001",-175,-23,-303,"Tanzania",6,9,10,12 +"D192","Coordinate System 1937 of Estonia","E002",374,150,588,"Estonia",2,2,3,19 +"D193","Deception Island","E001",260,12,-147,"Deception Is., Antarctica",20,20,20,3 +"D194","European 1950","E004",-112,-77,-145,"Tunisia",25,25,25,4 +"D195","Hermannskogel","E002",682,-203,480,"Yugoslavia (Pre 1990)",-1,-1,-1,0 +"D196","Indian","E201",283,682,231,"Pakistan",-1,-1,-1,0 +"D197","Indian 1960","E006",198,881,317,"Vietnam (near 16dN)",25,25,25,2 +"D198","Indian 1960","E006",182,915,344,"Con Son Island (Vietnam)",25,25,25,1 +"D199","Indonesian 1974","E200",-24,-15,5,"Indonesia",25,25,25,1 +"D200","North American 1927","E000",-2,152,149,"Aleutian Is (E of 180dW)",6,8,10,6 +"D201","North American 1927","E000",2,204,105,"Aleutian Is (W of 180dW)",10,8,10,5 +"D202","North Sahara 1959","E001",-186,-93,310,"Algeria",25,25,25,3 +"D203","Pulkovo 1942","E015",28,-130,-95,"Russia",-1,-1,-1,0 +"D204","S-42 (Pulkovo 1942)","E015",28,-121,-77,"Hungary",2,2,2,5 +"D205","S-42 (Pulkovo 1942)","E015",23,-124,-82,"Poland",4,2,4,11 +"D206","S-42 (Pulkovo 1942)","E015",26,-121,-78,"Czechoslovakia (Prior 1 Jan 1993)",3,3,2,6 +"D207","S-42 (Pulkovo 1942)","E015",24,-124,-82,"Latvia",2,2,2,5 +"D208","S-42 (Pulkovo 1942)","E015",15,-130,-84,"Kazakhstan",25,25,25,2 +"D209","S-42 (Pulkovo 1942)","E015",24,-130,-92,"Albania",3,3,3,7 +"D210","S-42 (Pulkovo 1942)","E015",28,-121,-77,"Romania",3,5,3,4 +"D211","S-JTSK","E002",589,76,480,"Czechoslovakia (1 Jan 1993 on)",4,2,3,6 +"D212","Sierra Leone 1960","E001",-88,4,101,"Sierra Leone",15,15,15,8 +"D213","Voirol 1874","E001",-73,-247,227,"Tunisia, Algeria",-1,-1,-1,0 +"D214","Voirol 1960","E001",-123,-206,219,"Algeria",25,25,25,2 +"D215","Indian 1975 (Cycle 0)","E006",209,818,290,"Thailand",12,10,12,6 +"D216","Korean Geodetic System 1995","E012",0,0,0,"South Korea",1,1,1,29 +"D217","Tokyo (Cycle 0)","E002",-146,507,687,"South Korea",8,5,8,12 +"D218","South American Geocentric Reference System (SIRGAS)","E008",0,0,0,"South America",1,1,1,66 +"D219","Old Hawaiian (Int 1924)","E004",201,-228,-346,"MEAN FOR Hawaii, Kauai, Maui, Oahu",25,20,20,15 +"D220","Old Hawaiian (Int 1924)","E004",229,-222,-348,"Hawaii",25,25,25,2 +"D221","Old Hawaiian (Int 1924)","E004",185,-233,-337,"Kauai",20,20,20,3 +"D222","Old Hawaiian (Int 1924)","E004",205,-233,-355,"Maui",25,25,25,2 +"D223","Old Hawaiian (Int 1924)","E004",198,-226,-347,"Oahu",10,6,6,8 +"D333","Tokyo Datum (Japan By Law)","E333",-147.54,507.26,680.47,"Japan",0,0,0,0 +"D334","Japanese Geodetic Datum 2000 (JGD2000)","E008",0.0,0.0,0.0,"Japan",0,0,0,0 +"D340","WGS 1972BE","E005",0,0,1.9,"Global Definition",3,3,3,1,-0,-0,-0.814,-0.38 +"D350","GRS 1980","E008",0.0,0.0,0.0,"Global Definition",0,0,0,0,0.0,0.0,0.0,1.0 +"D360","Pulkovo 1942","E015",27,-135,-84.5,"Russia",-1,-1,-1,0,-0.0,-0.0,-0.554,-0.2263 +"D400","Greece 1987","E008",-199.695,74.815,246.045,"Greece",0,0,0,0 +"D401","RT90 (Superceded by D403)","E002",-424,80,-613,"Sweden",0,0,0,0,-4.40,1.99,-5.18,1.0 +"D402","Indian 1960","E209",198,881,317,"India",0,0,0,0 +"D403","RT90 (Supercedes D401)","E002",414.1055246174,41.3265500042,603.0582474221,"Sweden",0,0,0,0,0.8551163377,-2.1413174055,7.0227298286,1.0 +"D450","ETRS89 (European Terrestrial Reference System 1989)","E008",0.0,0.0,0.0,"Europe",0,0,0,0 +"D500","Deutsches Hauptdreiecksnetz (DHDN), Potsdam (Rauenburg)","E002",580.0,80.9,395.3,"Germany",0,0,0,0,0.35,-0.10,3.58,1.00001112 +"D501","MGI (Militar-Geographische Institut) (Hermannskogel)","E002",575.0,93.0,466.0,"Austria",0,0,0,0,-5.1,-1.6,-5.2,1.0000025 +"D502","CH1903 (Superceded by D514)","E002",660.08,13.55,369.34,"Switzerland",0,0,0,0,0.805,0.578,0.952,1.00000566 +"D503","Belgian 72","E004",-99.059,53.322,-112.486,"Belgium",0,0,0,0,-0.419,0.830,-1.885,0.999999 +"D504","NTF (Nouvelle Triangulation Francaise)","E202",-166.817,-59.821,318.753,"France",0,0,0,0 +"D505","South American 1969 (new)","E907",-66.87,4.37,-38.52,"Brazil",0.43,0.44,0.40,0 +"D506","Rijksdriehoeks Datum","E002",565.04,49.91,465.84,"Netherlands",0,0,0,0,0.4094,-0.3597,1.8685,1.0000040772 +"D507","KKJ (Kartastokoordinaattijarjestelma)","E004",93.477,103.453,123.431,"Finland",0,0,0,0,4.801,0.345,-1.376,0.999998503 +"D508","Aratu (Brasil)","E004",-158,315,-148,"Brazil",2,3,2,0 +"D509","Hungarian Datum 1972 (HD-72)","E203",56.0,-75.77,-15.31,"Hungary",0,0,0,0,-0.37,-0.20,-0.21,1.00000101 +"D510","NZGD 1949 (7 terms)","E004",59.47,-5.04,187.44,"New Zealand",0,0,0,0,-0.47,0.10,-1.024,0.9999954007 +"D511","NZGD 1949 (3 terms)","E004",54.4,-20.1,183.1,"New Zealand",0,0,0,0 +"D512","NZGD 2000 (7 terms)","E008",0.0,0.0,0.0,"New Zealand",0,0,0,0,0.0,0.0,0.0,1.0 +"D513","NGO 1948","E206", 278.2932, 93.0497, 474.4745,"Norway",0,0,0,0, -7.8885, -0.0499, 6.6098, 6.2050 +"D514","CH1903+ (Supercedes D502)","E002",674.374,15.056,405.346,"Switzerland",0,0,0,0 +"D515","SL datum 95","E006",-2.0553,763.5581,87.6682,"Sri Lanka",0,0,0,0,-0.198003,-1.706361,-3.466120,-0.0315 +"D516","SL datum 1999","E006",-0.2933,766.9499,87.7131,"Sri Lanka",0,0,0,0,-0.1957040,-1.6950677,-3.4730161,-0.0393 +"D517","Cape (Supercedes D040)","E205",-134.73,-110.92,-292.66,"South Africa",0,0,0,0 +"D518","Hartebeesthoek94","E012",0,0,0,"South Africa",0,0,0,0 +"D519","Abidjan 1987","E001",-124.76,53,466.79,"Cote d'Ivoire",0,0,0,0 +"D520","Accra","E204",-199,32,322,"Ghana",0,0,0,0 +"D521","Azores Central 1948","E004",-104,167,-38,"Azores",0,0,0,0 +"D522","Azores Oriental 1940","E004",-203,141,53,"Azores",0,0,0,0 +"D523","Azores Occidental 1939","E004",-422.651,-172.995,84.02,"Azores",0,0,0,0 +"D524","Barbados 1938","E001",31.95,300.99,419.19,"Barbados",0,0,0,0 +"D525","Camacupa","E001",-50.9,-347.6,-231,"Angola",0,0,0,0 +"D526","Chos Malal 1914","E004",5.5,176.7,141.4,"Argentina",0,0,0,0 +"D527","Conakry 1905","E202",-23.0,259.0,-9.0,"Guinea",0,0,0,0 +"D528","Dealul Piscului 1933","E004",103.25,-100.40,-307.19,"Romania",0,0,0,0 +"D529","Dealul Piscului 1970","E015",44.107,-116.147,-54.648,"Romania",0,0,0,0 +"D530","Deir ez Zor","E202",-190.421,8.532,238.69,"Syria",0,0,0,0 +"D531","Dominica 1945","E001",725,685,536,"Dominica",0,0,0,0 +"D532","Kalianpur 1937","E209",214,804,268,"India",0,0,0,0 +"D533","Kalianpur 1962","E210",275.57,676.78,229.6,"Pakistan",0,0,0,0 +"D534","Kalianpur 1975","E216",295,736,257,"India",0,0,0,0 +"D535","SWEREF99","E008",0.0,0.0,0.0,"Sweden",0,0,0,0 +"D536","GDA94 (Geocentric Datum of Australia 1994)","E008",0.0,0.0,0.0,"Australia",0,0,0,0 +"D537","ETRF89 (European Terrestrial Reference Frame 1989)","E012",0.0,0.0,0.0,"Europe",0,0,0,0 +"D538","Bermuda 2000","E012",0.0,0.0,0.0,"Bermuda",0,0,0,0 +"D539","Samboja","E002",-404.78,-685.68,-45.47,"Indonesia",0,0,0,0 +"D540","Australian Antarctic 1998","E008",0.0,0.0,0.0,"Australian Antarctic Territory",0,0,0,0 +"D541","Everest (India and Nepal)","E226",295,736,257,"India",0,0,0,0 +"D542","Korea Datum 1985","E002",-323,309,653,"South Korea",0,0,0,0 +"D543","Israel","E008",-48,55,52,"Israel",0,0,0,0 +"D544","Lao National Datum 1997","E015",46.012,-127.108,-38.131,"Laos",0,0,0,0 +"D545","Hong Kong 1980 Datum","E004",-162.619,-276.959,-161.764,"Hong Kong",0,0,0,0,-0.067753,2.243649,1.158827,-1.094246 +"D546","HITO XVIII","E004",18.38,192.45,96.82,"Argentina",0,0,0,0,-0.056,0.142,0.200,-0.0013 +"D547","GDM 2000MRSO","E008",1.69276,-1.92994,2.07108,"West Malaysia",0,0,0,0,0.03515,-0.02858,-0.00617,0.24859 +"D548","GDM 2000BRSO","E008",-1.04278,-0.30902,0.57544,"East Malaysia",0,0,0,0,0.01102,-0.03471,0.02865,-0.01934 +"D549","Gulshan 303","E209",283.729,735.942,261.143,"Bangladesh",0,0,0,0 +"D551","CHTRF95 (Swiss Terrestrial Reference Frame 1995)","E008",0.0,0.0,0.0,"Switzerland",0,0,0,0 +"D600","D-PAF (Orbits)","E600",0.082,-0.502,-0.224,"Satellite Orbits",0,0,0,0,0.30444,0.04424,0.00609,0.9999999937 +"D601","Test Data Set 1","E601",0.071,-0.509,-0.166,"Test 1",0,0,0,0,0.0179,-0.0005,0.0067,0.999999983 +"D602","Test Data Set 2","E602",580.0,80.9,399.8,"Test 2",0,0,0,0,0.35,0.1,3.026,1.0000113470025 +"D610","US Standard Datum (USA, NADCON5)","E000","Conterminous U.S.","D611","nadcon5.ussd.nad27.conus.lon.trn.20160901.b","nadcon5.ussd.nad27.conus.lat.trn.20160901.b" +"D611","NAD27 (USA, NADCON5)","E000","Conterminous U.S.","D122","nadcon5.nad27.nad83_1986.conus.lon.trn.20160901.b","nadcon5.nad27.nad83_1986.conus.lat.trn.20160901.b" +"D612","NAD83 (HARN) (USA, NADCON5)","E008","Conterminous U.S.","-D122","nadcon5.nad83_1986.nad83_harn.conus.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_harn.conus.lat.trn.20160901.b" +"D613","NAD83 (FBN) (USA, NADCON5)","E008","Conterminous U.S.","-D612","nadcon5.nad83_harn.nad83_fbn.conus.lon.trn.20160901.b","nadcon5.nad83_harn.nad83_fbn.conus.lat.trn.20160901.b","nadcon5.nad83_harn.nad83_fbn.conus.eht.trn.20160901.b" +"D614","NAD83 (NSRS 2007) (USA, NADCON5)","E008","Conterminous U.S.","-D613","nadcon5.nad83_fbn.nad83_2007.conus.lon.trn.20160901.b","nadcon5.nad83_fbn.nad83_2007.conus.lat.trn.20160901.b","nadcon5.nad83_fbn.nad83_2007.conus.eht.trn.20160901.b" +"D615","NAD83 (2011) (USA, NADCON5)","E008","Conterminous U.S.","-D614","nadcon5.nad83_2007.nad83_2011.conus.lon.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.conus.lat.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.conus.eht.trn.20160901.b" +"D620","Puerto Rico Datum, adjustment of 1940 (USA, NADCON5)","E000","Puerto Rico, Virgin Islands","D122","nadcon5.pr40.nad83_1986.prvi.lon.trn.20160901.b","nadcon5.pr40.nad83_1986.prvi.lat.trn.20160901.b" +"D621","NAD83 (1993) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D122","nadcon5.nad83_1986.nad83_1993.prvi.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_1993.prvi.lat.trn.20160901.b" +"D622","NAD83 (1997) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D621","nadcon5.nad83_1993.nad83_1997.prvi.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_1997.prvi.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_1997.prvi.eht.trn.20160901.b" +"D623","NAD83 (2002) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D622","nadcon5.nad83_1997.nad83_2002.prvi.lon.trn.20160901.b","nadcon5.nad83_1997.nad83_2002.prvi.lat.trn.20160901.b","nadcon5.nad83_1997.nad83_2002.prvi.eht.trn.20160901.b" +"D624","NAD83 (NSRS 2007) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D623","nadcon5.nad83_2002.nad83_2007.prvi.lon.trn.20160901.b","nadcon5.nad83_2002.nad83_2007.prvi.lat.trn.20160901.b","nadcon5.nad83_2002.nad83_2007.prvi.eht.trn.20160901.b" +"D625","NAD83 (2011) (USA, NADCON5)","E008","Puerto Rico, Virgin Islands","-D624","nadcon5.nad83_2007.nad83_2011.prvi.lon.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.prvi.lat.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.prvi.eht.trn.20160901.b" +"D630","Old Hawaiian Datum (USA, NADCON5)","E000","Hawaii","D122","nadcon5.ohd.nad83_1986.hawaii.lon.trn.20160901.b","nadcon5.ohd.nad83_1986.hawaii.lat.trn.20160901.b" +"D631","NAD83 (1993) (USA, NADCON5)","E008","Hawaii","-D122","nadcon5.nad83_1986.nad83_1993.hawaii.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_1993.hawaii.lat.trn.20160901.b" +"D632","NAD83 (PA11) (USA, NADCON5)","E008","Hawaii","-D631","nadcon5.nad83_1993.nad83_pa11.hawaii.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_pa11.hawaii.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_pa11.hawaii.eht.trn.20160901.b" +"D640","NAD27 (USA, NADCON5)","E000","Alaska","D122","nadcon5.nad27.nad83_1986.alaska.lon.trn.20160901.b","nadcon5.nad27.nad83_1986.alaska.lat.trn.20160901.b" +"D641","NAD83 (1992) (USA, NADCON5)","E008","Alaska","-D122","nadcon5.nad83_1986.nad83_1992.alaska.lon.trn.20160901.b","nadcon5.nad83_1986.nad83_1992.alaska.lat.trn.20160901.b" +"D642","NAD83 (NSRS 2007) (USA, NADCON5)","E008","Alaska","-D641","nadcon5.nad83_1992.nad83_2007.alaska.lon.trn.20160901.b","nadcon5.nad83_1992.nad83_2007.alaska.lat.trn.20160901.b","nadcon5.nad83_1992.nad83_2007.alaska.eht.trn.20160901.b" +"D643","NAD83 (2011) (USA, NADCON5)","E008","Alaska","-D642","nadcon5.nad83_2007.nad83_2011.alaska.lon.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.alaska.lat.trn.20160901.b","nadcon5.nad83_2007.nad83_2011.alaska.eht.trn.20160901.b" +"D650","St. Paul 1897 (USA, NADCON5)","E000","St. Paul, Alaska","D651","nadcon5.sp1897.sp1952.stpaul.lon.trn.20160901.b","nadcon5.sp1897.sp1952.stpaul.lat.trn.20160901.b" +"D651","St. Paul 1952 (USA, NADCON5)","E000","St. Paul, Alaska","D122","nadcon5.sp1952.nad83_1986.stpaul.lon.trn.20160901.b","nadcon5.sp1952.nad83_1986.stpaul.lat.trn.20160901.b" +"D652","St. George 1897 (USA, NADCON5)","E000","St. George, Alaska","D653","nadcon5.sg1897.sg1952.stgeorge.lon.trn.20160901.b","nadcon5.sg1897.sg1952.stgeorge.lat.trn.20160901.b" +"D653","St. George 1952 (USA, NADCON5)","E000","St. George, Alaska","D122","nadcon5.sg1952.nad83_1986.stgeorge.lon.trn.20160901.b","nadcon5.sg1952.nad83_1986.stgeorge.lat.trn.20160901.b" +"D654","St. Lawrence 1952 (USA, NADCON5)","E000","St. Lawrence, Alaska","D122","nadcon5.sl1952.nad83_1986.stlawrence.lon.trn.20160901.b","nadcon5.sl1952.nad83_1986.stlawrence.lat.trn.20160901.b" +"D660","American Samoa 1962 (USA, NADCON5)","E000","American Samoa","D122","nadcon5.as62.nad83_1993.as.lon.trn.20160901.b","nadcon5.as62.nad83_1993.as.lat.trn.20160901.b" +"D661","NAD83 (2002) (USA, NADCON5)","E008","American Samoa","-D122","nadcon5.nad83_1993.nad83_2002.as.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.as.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.as.eht.trn.20160901.b" +"D662","NAD83 (PA11) (USA, NADCON5)","E008","American Samoa","-D661","nadcon5.nad83_2002.nad83_pa11.as.lon.trn.20160901.b","nadcon5.nad83_2002.nad83_pa11.as.lat.trn.20160901.b","nadcon5.nad83_2002.nad83_pa11.as.eht.trn.20160901.b" +"D670","Guam 1963 (USA, NADCON5)","E000","Guam and the Commonwealth of the Northern Mariana Islands","D122","nadcon5.gu63.nad83_1993.guamcnmi.lon.trn.20160901.b","nadcon5.gu63.nad83_1993.guamcnmi.lat.trn.20160901.b" +"D671","NAD83 (2002) (USA, NADCON5)","E008","Guam and the Commonwealth of the Northern Mariana Islands","-D122","nadcon5.nad83_1993.nad83_2002.guamcnmi.lon.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.guamcnmi.lat.trn.20160901.b","nadcon5.nad83_1993.nad83_2002.guamcnmi.eht.trn.20160901.b" +"D672","NAD83 (MA11) (USA, NADCON5)","E008","Guam and the Commonwealth of the Northern Mariana Islands","-D671","nadcon5.nad83_2002.nad83_ma11.guamcnmi.lon.trn.20160901.b","nadcon5.nad83_2002.nad83_ma11.guamcnmi.lat.trn.20160901.b","nadcon5.nad83_2002.nad83_ma11.guamcnmi.eht.trn.20160901.b" +"D700","MODIS","E700",0,0,0,"Global Definition",0,0,0,0 +"D701","NAD83 (Deprecated - use D122)","E008",0,0,0,"Alabama",2,2,2,354 +"D702","NAD83 HARN (USA, NADCON)","E008","Alabama","D122","alhpgn.los","alhpgn.las" +"D703","NAD83 (Deprecated - use D122)","E008",0,0,0,"Arkansas",2,2,2,354 +"D704","NAD83 HARN (USA, NADCON)","E008","Arkansas","D122","arhpgn.los","arhpgn.las" +"D705","NAD83 (Deprecated - use D122)","E008",0,0,0,"Arizona",2,2,2,354 +"D706","NAD83 HARN (USA, NADCON)","E008","Arizona","D122","azhpgn.los","azhpgn.las" +"D707","NAD83 (Deprecated - use D122)","E008",0,0,0,"California (North of 37dN)",2,2,2,354 +"D708","NAD83 HARN (USA, NADCON)","E008","California (North of 37dN)","D122","cnhpgn.los","cnhpgn.las" +"D709","NAD83 (Deprecated - use D122)","E008",0,0,0,"California (South of 37dN)",2,2,2,354 +"D710","NAD83 HARN (USA, NADCON)","E008","California (South of 37dN)","D122","cshpgn.los","cshpgn.las" +"D711","NAD83 (Deprecated - use D122)","E008",0,0,0,"Colorado",2,2,2,354 +"D712","NAD83 HARN (USA, NADCON)","E008","Colorado","D122","cohpgn.los","cohpgn.las" +"D713","NAD83 (Deprecated - use D122)","E008",0,0,0,"Florida",2,2,2,354 +"D714","NAD83 HARN (USA, NADCON)","E008","Florida","D122","flhpgn.los","flhpgn.las" +"D715","NAD83 (Deprecated - use D122)","E008",0,0,0,"Georgia",2,2,2,354 +"D716","NAD83 HARN (USA, NADCON)","E008","Georgia","D122","gahpgn.los","gahpgn.las" +"D717","Guam 1963 (Deprecated - use D068)","E000",-100,-248,259,"Guam",3,3,3,5 +"D718","NAD83 HARN (USA, NADCON)","E008","Guam","D068","guhpgn.los","guhpgn.las" +"D719","NAD83 (Deprecated - use D122)","E008",0,0,0,"Hawaii",2,2,2,354 +"D720","NAD83 HARN (USA, NADCON)","E008","Hawaii","D122","hihpgn.los","hihpgn.las" +"D721","NAD83 (Deprecated - use D122)","E008",0,0,0,"Idaho-Montana (East of 113dW)",2,2,2,354 +"D722","NAD83 HARN (USA, NADCON)","E008","Idaho-Montana (East of 113dW)","D122","emhpgn.los","emhpgn.las" +"D723","NAD83 (Deprecated - use D122)","E008",0,0,0,"Idaho-Montana (West of 113dW)",2,2,2,354 +"D724","NAD83 HARN (USA, NADCON)","E008","Idaho-Montana (West of 113dW)","D122","wmhpgn.los","wmhpgn.las" +"D725","NAD83 (Deprecated - use D122)","E008",0,0,0,"Iowa",2,2,2,354 +"D726","NAD83 HARN (USA, NADCON)","E008","Iowa","D122","iahpgn.los","iahpgn.las" +"D727","NAD83 (Deprecated - use D122)","E008",0,0,0,"Illinois",2,2,2,354 +"D728","NAD83 HARN (USA, NADCON)","E008","Illinois","D122","ilhpgn.los","ilhpgn.las" +"D729","NAD83 (Deprecated - use D122)","E008",0,0,0,"Indiana",2,2,2,354 +"D730","NAD83 HARN (USA, NADCON)","E008","Indiana","D122","inhpgn.los","inhpgn.las" +"D731","NAD83 (Deprecated - use D122)","E008",0,0,0,"Kansas",2,2,2,354 +"D732","NAD83 HARN (USA, NADCON)","E008","Kansas","D122","kshpgn.los","kshpgn.las" +"D733","NAD83 (Deprecated - use D122)","E008",0,0,0,"Kentucky",2,2,2,354 +"D734","NAD83 HARN (USA, NADCON)","E008","Kentucky","D122","kyhpgn.los","kyhpgn.las" +"D735","NAD83 (Deprecated - use D122)","E008",0,0,0,"Louisiana",2,2,2,354 +"D736","NAD83 HARN (USA, NADCON)","E008","Louisiana","D122","lahpgn.los","lahpgn.las" +"D737","NAD83 (Deprecated - use D122)","E008",0,0,0,"Maryland-Delaware",2,2,2,354 +"D738","NAD83 HARN (USA, NADCON)","E008","Maryland-Delaware","D122","mdhpgn.los","mdhpgn.las" +"D739","NAD83 (Deprecated - use D122)","E008",0,0,0,"Maine",2,2,2,354 +"D740","NAD83 HARN (USA, NADCON)","E008","Maine","D122","mehpgn.los","mehpgn.las" +"D741","NAD83 (Deprecated - use D122)","E008",0,0,0,"Michigan",2,2,2,354 +"D742","NAD83 HARN (USA, NADCON)","E008","Michigan","D122","mihpgn.los","mihpgn.las" +"D743","NAD83 (Deprecated - use D122)","E008",0,0,0,"Minnesota",2,2,2,354 +"D744","NAD83 HARN (USA, NADCON)","E008","Minnesota","D122","mnhpgn.los","mnhpgn.las" +"D745","NAD83 (Deprecated - use D122)","E008",0,0,0,"Mississippi",2,2,2,354 +"D746","NAD83 HARN (USA, NADCON)","E008","Mississippi","D122","mshpgn.los","mshpgn.las" +"D747","NAD83 (Deprecated - use D122)","E008",0,0,0,"Missouri",2,2,2,354 +"D748","NAD83 HARN (USA, NADCON)","E008","Missouri","D122","mohpgn.los","mohpgn.las" +"D749","NAD83 (Deprecated - use D122)","E008",0,0,0,"Nebraska",2,2,2,354 +"D750","NAD83 HARN (USA, NADCON)","E008","Nebraska","D122","nbhpgn.los","nbhpgn.las" +"D751","NAD83 (Deprecated - use D122)","E008",0,0,0,"Nevada",2,2,2,354 +"D752","NAD83 HARN (USA, NADCON)","E008","Nevada","D122","nvhpgn.los","nvhpgn.las" +"D753","NAD83 (Deprecated - use D122)","E008",0,0,0,"New England (CT,MA,NH,RI,VT",2,2,2,354 +"D754","NAD83 HARN (USA, NADCON)","E008","New England (CT,MA,NH,RI,VT)","D122","nehpgn.los","nehpgn.las" +"D755","NAD83 (Deprecated - use D122)","E008",0,0,0,"New Jersey",2,2,2,354 +"D756","NAD83 HARN (USA, NADCON)","E008","New Jersey","D122","njhpgn.los","njhpgn.las" +"D757","NAD83 (Deprecated - use D122)","E008",0,0,0,"New Mexico",2,2,2,354 +"D758","NAD83 HARN (USA, NADCON)","E008","New Mexico","D122","nmhpgn.los","nmhpgn.las" +"D759","NAD83 (Deprecated - use D122)","E008",0,0,0,"New York",2,2,2,354 +"D760","NAD83 HARN (USA, NADCON)","E008","New York","D122","nyhpgn.los","nyhpgn.las" +"D761","NAD83 (Deprecated - use D122)","E008",0,0,0,"North Carolina",2,2,2,354 +"D762","NAD83 HARN (USA, NADCON)","E008","North Carolina","D122","nchpgn.los","nchpgn.las" +"D763","NAD83 (Deprecated - use D122)","E008",0,0,0,"North Dakota",2,2,2,354 +"D764","NAD83 HARN (USA, NADCON)","E008","North Dakota","D122","ndhpgn.los","ndhpgn.las" +"D765","NAD83 (Deprecated - use D122)","E008",0,0,0,"Ohio",2,2,2,354 +"D766","NAD83 HARN (USA, NADCON)","E008","Ohio","D122","ohhpgn.los","ohhpgn.las" +"D767","NAD83 (Deprecated - use D122)","E008",0,0,0,"Oklahoma",2,2,2,354 +"D768","NAD83 HARN (USA, NADCON)","E008","Oklahoma","D122","okhpgn.los","okhpgn.las" +"D769","NAD83 (Deprecated - use D122)","E008",0,0,0,"Pennsylvania",2,2,2,354 +"D770","NAD83 HARN (USA, NADCON)","E008","Pennsylvania","D122","pahpgn.los","pahpgn.las" +"D771","NAD83 (Deprecated - use D122)","E008",0,0,0,"Puerto Rico-Virgin Is",2,2,2,354 +"D772","NAD83 HARN (USA, NADCON)","E008","Puerto Rico-Virgin Is","D122","pvhpgn.los","pvhpgn.las" +"D773","American Samoa 1962 (Deprecated - use D189)","E000",-115,118,426,"Samoa (Eastern Islands)",25,25,25,2 +"D774","NAD83 HARN (USA, NADCON)","E008","Samoa (Eastern Islands)","D189","eshpgn.los","eshpgn.las" +"D775","American Samoa 1962 (Deprecated - use D189)","E000",-115,118,426,"Samoa (Western Islands)",25,25,25,2 +"D776","NAD83 HARN (USA, NADCON)","E008","Samoa (Western Islands)","D189","wshpgn.los","wshpgn.las" +"D777","NAD83 (Deprecated - use D122)","E008",0,0,0,"South Carolina",2,2,2,354 +"D778","NAD83 HARN (USA, NADCON)","E008","South Carolina","D122","schpgn.los","schpgn.las" +"D779","NAD83 (Deprecated - use D122)","E008",0,0,0,"South Dakota",2,2,2,354 +"D780","NAD83 HARN (USA, NADCON)","E008","South Dakota","D122","sdhpgn.los","sdhpgn.las" +"D781","NAD83 (Deprecated - use D122)","E008",0,0,0,"Tennessee",2,2,2,354 +"D782","NAD83 HARN (USA, NADCON)","E008","Tennessee","D122","tnhpgn.los","tnhpgn.las" +"D783","NAD83 (Deprecated - use D122)","E008",0,0,0,"Texas (East of 100dW)",2,2,2,354 +"D784","NAD83 HARN (USA, NADCON)","E008","Texas (East of 100dW)","D122","ethpgn.los","ethpgn.las" +"D785","NAD83 (Deprecated - use D122)","E008",0,0,0,"Texas (West of 100dW)",2,2,2,354 +"D786","NAD83 HARN (USA, NADCON)","E008","Texas (West of 100dW)","D122","wthpgn.los","wthpgn.las" +"D787","NAD83 (Deprecated - use D122)","E008",0,0,0,"Utah",2,2,2,354 +"D788","NAD83 HARN (USA, NADCON)","E008","Utah","D122","uthpgn.los","uthpgn.las" +"D789","NAD83 (Deprecated - use D122)","E008",0,0,0,"Virginia",2,2,2,354 +"D790","NAD83 HARN (USA, NADCON)","E008","Virginia","D122","vahpgn.los","vahpgn.las" +"D791","NAD83 (Deprecated - use D122)","E008",0,0,0,"Washington-Oregon",2,2,2,354 +"D792","NAD83 HARN (USA, NADCON)","E008","Washington-Oregon","D122","wohpgn.los","wohpgn.las" +"D793","NAD83 (Deprecated - use D122)","E008",0,0,0,"West Virginia",2,2,2,354 +"D794","NAD83 HARN (USA, NADCON)","E008","West Virginia","D122","wvhpgn.los","wvhpgn.las" +"D795","NAD83 (Deprecated - use D122)","E008",0,0,0,"Wisconsin",2,2,2,354 +"D796","NAD83 HARN (USA, NADCON)","E008","Wisconsin","D122","wihpgn.los","wihpgn.las" +"D797","NAD83 (Deprecated - use D122)","E008",0,0,0,"Wyoming",2,2,2,354 +"D798","NAD83 HARN (USA, NADCON)","E008","Wyoming","D122","wyhpgn.los","wyhpgn.las" +"D888","Lebanon Stereographic","E012",154.2668777,107.2190767,-263.01161212,"Lebanon",0,0,0,0,0.310716,0.218736,0.191232,0.99999913 +"D889","Lebanon Lambert","E202",190.9999,133.32473,-232.8391,"Lebanon",0,0,0,0,0.307836,0.216756,0.189036,0.9995341 +"D890","Luxembourg (LUREF)","E004",-192.986,13.673,-39.309,"Luxembourg",0,0,0,0,0.409900,2.933200,-2.688100,1.00000043 +"D891","Datum 73","E004",-223.237,110.193,36.649,"Portugal",0,0,0,0 +"D892","Datum Lisboa","E004",-304.046,-60.576,103.640,"Portugal",0,0,0,0 +"D893","PDO Survey Datum 1993","E001",-180.624,-225.516,173.919,"Oman",0,0,0,0,0.80970,1.89755,-8.33604,16.71006 +"D898","TWD97","E008",0,0,0,"Taiwan",0,0,0,0,0.0,0.0,0.0,0.0 +"D899","TWD67","E899",-752,-358,-179,"Taiwan",0,0,0,0,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +"D886","Reseau Geodesique Francais 1993","E899",-752,-358,-179,"France",0,0,0,0,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +"D887","Reseau National Belge 1972","E899",-752,-358,-179,"Belgium",0,0,0,0,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +"D819","Xian 1980","E224",0,0,0,"China",0,0,0,0,0,0,0,0 +"D820","Korea 2000","E008",0.0,0.0,0.0,"South Korea",0,0,0,0 +"D821","Pulkovo 1995","E015",24.47,-130.89,-81.56,"Russian Federation",0,0,0,0,0,0,-0.13,-0.22 +"D822","Beijing 1954","E015",15.8,-154.4,-82.3,"China",0,0,0,0 +"D823","Stockholm 1938 (RT38)","E002",0.0,0.0,0.0,"Sweden",0,0,0,0 +"D824","Greenland 1996 (GR96)","E008",0.0,0.0,0.0,"Greenland",0,0,0,0 +"D825","Libyan Geodetic Datum 2006 (LGD2006)","E004",-208.406,-109.878,-2.5764,"Libya",0,0,0,0 +"D826","Reseau Geodesique de la Polynesie Francaise (RGPF)","E008",0.072,-0.507,-0.245,"French Polynesia",0,0,0,0,0.0183,-0.0003,0.007,-0.0093 +"D827","IGC 1962 6th Parallel South","E001",0.0,0.0,0.0,"Democratic Republic of the Congo - adjacent to 6th parallel south",0,0,0,0 +"D828","Geodetic Datum of Malaysia (GDM)","E008",0.0,0.0,0.0,"Malaysia",0,0,0,0 +"D829","New Beijing","E015",0.0,0.0,0.0,"China",0,0,0,0 +"D830","Turkish National Reference Frame (TUKREF)","E008",0.0,0.0,0.0,"Turkey",0,0,0,0 +"D831","Bhutan National Geodetic Datum (DRUKREF)","E008",0.0,0.0,0.0,"Bhutan",0,0,0,0 +"D832","Ukraine 2000","E015",0.0,0.0,0.0,"Ukraine",0,0,0,0 +"D833","Japanese Geodetic Datum 2011 (JGD2011)","E008",0.0,0.0,0.0,"Japan",0,0,0,0 +"D834","Posiciones Geodesicas Argentinas 1998 (POSGAR 98)","E008",0.0,0.0,0.0,"Argentina",0,0,0,0 +"D835","Posiciones Geodesicas Argentinas 1994 (POSGAR 94)","E012",0.0,0.0,0.0,"Argentina",0,0,0,0 +"D836","Posiciones Geodesicas Argentinas 2007 (POSGAR 07)","E008",0.0,0.0,0.0,"Argentina",0,0,0,0 +"D837","Datum Geodesi Nasional 1995 (DGN95)","E012",0.0,0.0,0.0,"Indonesia",0,0,0,0 +"D838","Korea 1995","E012",0.0,0.0,0.0,"South Korea",0,0,0,0 +"D839","Institut Geographique du Congo Belge (IGCB) 1955","E001",-79.9,-158,-168.9,"The Democratic Republic of the Congo (Zaire) - Lower Congo",0,0,0,0 +"D894","WGS 1984 semi-major","E020",0,0,0,"WGS 1984 Auxiliary Sphere semi-major axis",0,0,0,0 +"D895","ATS77","E910",-95.323,166.098,-69.942,"Maritime Provinces",0,0,0,0,0.215,1.031,-0.047,1.922 +"D896","GosatCAIL1B+ EarthRadius","E025",0,0,0,"GosatCAIL1B+ EarthRadius",0,0,0,0 +"D897","Myanmar","E227",247,785,277,"Myanmar",0,0,0,0 +"D900","China 2000","E231",0,0,0,"China 2000",0,0,0,0 +"D901","Nouvelle Triangulation Francaise (grid shift)","E202","France","-D350","ntf_r93.gsb" +"D902","PRS92","E000",-127.62153,-67.24339,-47.04738,"Philippines Reference System 1992",0,0,0,0,3.06803,-4.90297,-1.57807,-1.06002 +"D903","North American 1983 2011","E008",0,0,0,"Alaska, Canada, CONUS, Central America, Mexico",2,2,2,354 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt new file mode 100644 index 00000000..ff6ae298 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pci_ellips.txt @@ -0,0 +1,129 @@ +! +! From https://github.com/OSGeo/gdal/issues/8034, June 30, 2023 +! +! I, Michael Goldberg, on behalf of PCI Geomatics agree to allow the ellips.txt +! and datum.txt file to be distributed under the GDAL open source license. +! +! Michael Goldberg +! Development Manager +! PCI Geomatics +! +! PCI Ellipsoid Database +! ---------------------- +! This file lists the different reference ellipsoids that may +! be used by PCI coordinate systems. Ellipsoid entries in datum.txt +! refer to entries in this file. +! +! Each ellipsoid is listed on a single line. The format of each record +! is as follows: +! +! Ellipsoid_code, Description_string, Semimajor_axis_m, Semiminor_axis_m [,extra comments] +! +! Ellipsoid_code is the code that uniquely identifies the ellipsoid +! within PCI software +! Description_string is a short description that helps users to identify +! the ellipsoid. It may be listed, for example, in a dropdown list in +! a PCI dialog box. +! Semimajor_axis_m is the ellipsoid semi-major (equatorial) axis length in metres. +! Semiminor_axis_m is the ellipsoid semi-minor (polar) axis length in metres. +! +! Any extra fields may be added after these four elements if desired; they will +! not be read by PCI software but may be helpful for the user. +! +! NOTE: The range of "E908" to "E998" is set aside for +! the use of local customer development. +! +"E000","Clarke 1866",6378206.4,6356583.8 +"E001","Clarke 1880 (RGS)",6378249.145,6356514.86955 +"E002","Bessel 1841",6377397.155,6356078.96284 +"E003","New International 1967",6378157.5,6356772.2 +"E004","International 1924",6378388.,6356911.94613 +"E005","WGS 72",6378135.,6356750.519915 +"E006","Everest (India 1830)",6377276.3452,6356075.4133 +"E007","WGS 66",6378145.,6356759.769356 +"E008","GRS 1980",6378137.,6356752.31414 +"E009","Airy 1830",6377563.396,6356256.91 +"E010","Everest (W. Malaysia and Singapore 1948)",6377304.063,6356103.039 +"E011","Modified Airy",6377340.189,6356034.448 +"E012","WGS 84",6378137.,6356752.314245 +"E013","Modified Fischer 1960",6378155.,6356773.3205 +"E014","Australian National 1965",6378160.,6356774.719 +"E015","Krassovsky 1940",6378245.,6356863.0188 +"E016","Hough 1960",6378270.,6356794.343479 +"E017","Fischer 1960",6378166.,6356784.283666 +"E018","Fischer 1968",6378150.,6356768.337303 +"E019","Normal Sphere",6370997.,6370997. +"E020","WGS 84 semimajor axis",6378137.,6378137. +"E021","WGS 84 semiminor axis",6356752.314245,6356752.314245 +"E022","Clarke 1866 Authalic Sphere", 6370997.000000, 6370997.000000 +"E023","GRS 1980 Authalic Sphere", 6371007.000000, 6371007.000000 +"E024","International 1924 Authalic Sphere", 6371228.000000, 6371228.000000 +"E025","GosatCAIL1B+ EarthRadius",6371008.77138,6371008.77138 +"E200","Indonesian 1974",6378160.,6356774.504086 +"E201","Everest (Pakistan)",6377309.613,6356108.570542 +"E202","Clarke 1880 (IGN, France)",6378249.2,6356515.0 +"E203","IUGG 67",6378160.,6356774.516090714 +"E204","War Office",6378300.000,6356751.689189 +"E205","Clarke 1880 Arc",6378249.145,6356514.966 +"E206","Bessel Modified",6377492.018,6356173.5087 +"E207","Clarke 1858",6378293.639,6356617.98149 +"E208","Clarke 1880",6378249.138,6356514.95942 +"E209","Everest (1937 Adjustment)",6377276.345,6356075.413 +"E210","Everest (1962 Definition)",6377301.243,6356100.23 +"E211","Everest Modified",6377304.063,6356103.039 +"E212","Modified Everest 1969",6377295.664,6356094.668 +"E213","Everest (1967 Definition)",6377298.556,6356097.550 +"E214","Clarke 1880 (Benoit)",6378300.789000,6356566.435000 +"E215","Clarke 1880 (SGA)",6378249.2,6356515.0 +"E216","Everest (1975 Definition)",6377299.151,6356098.1451 +"E217","GEM 10C",6378137,6356752.31414 +"E218","OSU 86F",6378136.2,6356751.516672 +"E219","OSU 91A",6378136.3,6356751.6163367 +"E220","Sphere",6371000,6371000 +"E221","Struve 1860",6378298.300000,6356657.142670 +"E222","Walbeck",6376896,6355834.847 +"E223","Plessis 1817",6376523,6355862.933 +"E224","Xian 1980",6378140.0,6356755.288 +"E225","EMEP Sphere",6370000,6370000 +"E226","Everest (India and Nepal)",6377301.243,6356100.228368 +"E227","Everest (1830 Definition)", 6377299.365595, 6356098.359005,"EPSG:7042" +"E228","Danish 1876", 6377019.270000, 6355762.539100 +"E229","Bessel Namibia (GLM)", 6377483.865280, 6356165.383246 +"E230","PZ-90", 6378136.000000, 6356751.361746 +"E231","CGCS2000", 6378137.000000, 6356752.314140 +"E232","IAG 1975", 6378140.000000, 6356755.288158 +"E233","NWL 9D", 6378145.000000, 6356759.769489 +"E234","Hughes 1980", 6378273.000000, 6356889.449000 +"E235","Clarke 1880 (international foot)", 6378306.369600, 6356571.996000 +"E236","Clarke 1866 Michigan", 6378450.047549, 6356826.621488 +"E237","APL 4.5 (1968)", 6378144.000000, 6356757.338698 +"E238","Airy (War Office)", 6377542.178, 6356235.764 +"E239","Clarke 1858 (DIGEST)", 6378235.600, 6356560.140 +"E240","Clarke 1880 (Palestine)", 6378300.782, 6356566.427 +"E241","Clarke 1880 (Syria)", 6378247.842, 6356513.671 +"E242","Clarke 1880 (Fiji)", 6378301.000, 6356566.548 +"E243","Andrae", 6377104.430, 6355847.415 +"E244","Delambre 1810", 6376985.228, 6356323.664 +"E245","Delambre (Carte de France)", 6376985.000, 6356323.436 +"E246","Germaine (Djibouti)", 6378284.000, 6356589.156 +"E247","Hayford 1909", 6378388.000, 6356909.000 +"E248","Krayenhoff 1827", 6376950.400, 6356356.341 +"E249","Plessis Reconstituted", 6376523.994, 6355862.907 +"E250","GRS 1967", 6378160.000, 6356774.516 +"E251","Svanberg", 6376797.000, 6355837.971 +"E252","Walbeck 1819 (Planheft 1942)", 6376895.000, 6355834.000 +"E333","Bessel 1841 (Japan By Law)",6377397.155,6356078.963 +"E600","D-PAF (Orbits)",6378144.0,6356759.0 +"E601","Test Data Set 1",6378144.0,6356759.0 +"E602","Test Data Set 2",6377397.2,6356079.0 +"E700","MODIS (Sphere from WGS84)",6371007.181,6371007.181 +"E899","GRS 1967 Modified",6378160.,6356774.719195306 +"E900","Bessel 1841 (Namibia)",6377483.865,6356165.382966 +"E901","Everest (India 1956)",6377301.243,6356100.228368 +"E902","Everest (W. Malaysia 1969)",6377295.664,6356094.667915 +"E903","Everest (E. Malaysia and Brunei)",6377298.556,6356097.550301 +"E904","Helmert 1906",6378200.,6356818.169628 +"E905","SGS 85",6378136.,6356751.301569 +"E906","WGS 60",6378165.,6356783.286959 +"E907","South American 1969",6378160.,6356774.719 +"E910","ATS77",6378135.0,6356750.304922 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd new file mode 100644 index 00000000..940bdf52 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/pdfcomposition.xsd @@ -0,0 +1,705 @@ + + + + + + Root element defining a composition of one or several pages. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Define the outline / bookmarks of the document, typically the + structure of pages. But bookmarks may also point to particular + elements in a page. + Recursive list of OutlineItem. + + + + + + + + + An OutlineItem may be final or a parent of child OutlineItem. + If the OutlineItem has children, the open attribute controls whether + the children list must be folded or not. + An OutlineItem may have zero, one or several acssociated actions. + + + + + + + + + + + + + + User visible name of the outline item. + + + + + Whether children outline items should be unfolded. + + + + + + + + + Abstract action element type + + + + + + Abstract action element + + + + + + Goto a destination page. + The x1, y1, x2, y2 attributes + may also be defined to zoom-in on a particular area of the page. + + + + + + + + + + + + + + + + + Turn all layers on or off. + Later SetAllLayersStateAction/SetLayerStateAction might change this state. + + + + + + + + + + + + + Turn a specific layer on off. + Later SetAllLayersStateAction/SetLayerStateAction might change this state. + + + + + + + + + + + + + + Execute a Javascript action. + See https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf + The script must be put as the content of the element. + + + + + + + + + + + + + + + + + + + + The XMP payload must be serialized in a XML-escaped way + + + + + + + + Hierarchical definition of layers ("Optional Content Group" in PDF parlance) + Common to all pages, but their visibility in the layer tree can + be controlled with the displayOnlyOnVisiblePages attribute. + + + + + + + Whether to list, in the layer tree, layers that are referenced + by at at least one currently visible page(s). + Default is false, that is the layers are always listed. + + + + + + + Define a Layer ("Optional Content Group" in PDF parlance) + + + + + + + Arbitrary id, unique to the layer. Will be cross-referenced by + IfLayerOnType#layerId to define conditional visibility. + + + + + User visible name + + + + + + Arbitrary id defining a group of mutually exclusive layers. + Layers referencing to the same #mutuallyExclusiveGroupId value + will be mutually exclusive. + + + + + + + + + + + + + + + Arbitrary id, unique to the page. Required if the page must + be referenced by a OutlineItem. + + + + + + + + + + + + + + + + + + + + + + CRS WKT string, or EPSG:XXXX code. + + + + + Define the viewport where georeferenced coordinates are + available. + If not specified, the extent of BoundingPolygon will be used instead. + If none of BoundingBox and BoundingPolygon are specified, + the whole PDF page will be assumed to be georeferenced. + + + + + Define a polygon / neatline in PDF units into which the + Measure tool will display coordinates. + If not specified, BoundingBox will be used instead. + If none of BoundingBox and BoundingPolygon are specified, + the whole PDF page will be assumed to be georeferenced. + + + + + Those points define the mapping from PDF coordinates to + georeferenced coordinates. At least 4 of them must be + provided. They do not need to form a rectangle neither in + PDF coordinate space nor in georeferenced coordinate space. + However if the georeferenced area is referenced to by content, + they must be evaluated to a geotransform, without rotation + or shearing. + + + + + + ID that can be referred to to automatically place content. + The georeferencing area ca be referenced to, only if the + control points define an affine geotransform, without rotation + or shearing, from PDF coordinate space to georeferenced + coordinate space. + + + + + ISO-32000 extension format is the georeferencing format + recognized by the Measure / Geographic location tool of Acrobat reader. + + + + + OGC Best Practice format is the georeferencing format + recognized by the Terrago Toolbar. + It seems that within a PDF file, + there should be only georeferenced areas encoded with the + OGC Best Practice so that the Terrago Toolbar accepts to + read them. + + + + + + + + + + Defines the data axis to SRS axis mapping. List of + comma-separated axis number (starting at 1). + Used to interpret the GeoX and GeoY attribute meaning. + If not specified, the traditional GIS order is assumed. + + + + + + + + + x2 must be > x1 and y2 > y1 + + + + + + + + + + + + + X value of the control point expressed in the SRS + + + + + Y value of the control point expressed in the SRS + + + + + + + Sequence of raster, vector, labels, content from other PDF document, + or conditionalized content of any of the above types. + The content is drawn in the order it is mentioned, that is the + first mentioned item is drawn first, and the last mentioned item + is drawn last. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Insert the content stream of the (first page of the) PDF, together with + its resources, without any extra rasterization. + Optional content groups or georeferencing potentially found in the + PDF to insert are ignored. + The dimensions of the inserted PDF are assumed to be the same + as the PDF where it is inserted. + + + + + + + + + + Insert raster (or rasterized) content from a GDAL dataset. + + There are two modes: + + - one where the raster potential georeferencing is completely ignored, + and the image is put at the specified PDF coordinates. + I which case , x1, y1, x2, y2 are in PDF coordinate units and represent the + area where the image will be stretched. If not specified, + the whole PDF page is occupied. + x2 must be > x1 and y2 > y1. + + - another one, when the georeferencingId attribute is defined, and + reference a georeferenced area. In that case, the raster geotransform + will be used to correctly place it in the georeferenced area. + + + + + + + + GDAL dataset name + + + + + + + + + References a georeferenced area in the same page + through its Georeferencing#id + + + + + + + + + + Only applies when method=JPEG. + If not specified, if the source raster is a JPEG file, its + codestream will be used directly. Otherwise, the image will + be compressed with a quality of 75%. + + + + + Only applies when method=DEFALTE + + + + + + + + + + + + + + + + + + + + + + Insert vector content from a OGR dataset. + + There are two modes: + - The coordinates of the vector features must be in PDF coordinate units. + This is when the georeferencingId attributes is not set. + + - another one, when the georeferencingId attribute is defined, and + reference a georeferenced area. In that case, the vector georeferenced + coordinates will be used to correctly place it in the georeferenced area. + + Note: OGR Feature Style strings containing a LABEL tool will not work with + this element, to display labels use a VectorLabel element instead. + + + + + + + + OGR dataset name + + + + + OGR layer name + + + + + References a georeferenced area in the same page + through its Georeferencing#id + + + + + Whether objects should be drawn or not + + + + + Name of the attribute whose value is used to create a hyperlink + + + + + String overriding per-feature style + + + + + + + The LogicalStructure element should be put when the features + of the layer should be written in the logical structure of the + document, and thus visible in the "Model Tree" of Acrobat reader. + By default, all OGR fields are included. + + + + + + + Whether all fields should be excluded, but the one(s) + potentially mentioned in IncludeField. + + + + + Name of OGR field to include. + + + + + + + Whether all fields should be included, but the one(s) + potentially mentioned in ExcludeField. + + + + + Name of OGR field to exclude. + + + + + + + + Name of the layer that will appear in the PDF reader. + If not specified, this will be the OGR layer name. + + + + + Name of the OGR field whose value should be display for each + feature in feature tree of the PDF reader. + If not specified, this will "feature{FID}". + + + + + + + Insert text labels for features from a OGR dataset. + + The features must be associated with a OGR Feature Style string with + a LABEL tool. + Only LATIN-1 characters will be correctly output. + + There are two modes: + - The coordinates of the vector features must be in PDF coordinate units. + This is when the georeferencingId attributes is not set. + + - another one, when the georeferencingId attribute is defined, and + reference a georeferenced area. In that case, the vector georeferenced + coordinates will be used to correctly place it in the georeferenced area. + + + + + + + OGR dataset name + + + + + OGR layer name + + + + + References a georeferenced area in the same page + through its Georeferencing#id + + + + + String overriding per-feature style + + + + + + + + + + + + Blend mode as defined in PDF reference version 1.7 + page 520, Table 7.2 "Standard separable blend modes". + + + + + + + + + + + + + + + + + + + + + + + + + + + Conditionalize content display to the On status of a layer. + IfLayerOn elements can be nested. And in general, the nesting used + to define the layers should be used to define the conditional + content too, because toggling off a upper-level layer in Acrobat + does not change the state of its children. + + For example: + <Layer id="A" name="A"> + <Layer id="A.1" name="A.1""></Layer> + </Layer> + + <IfLayerOnType layerId="A"> + <IfLayerOnType layerId="A.1"> + .... + </IfLayerOnType> + </IfLayerOnType> + + + + + + Should reference a Layer#id attribute. + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs new file mode 100644 index 00000000..516f2882 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_ob_v1.gfs @@ -0,0 +1,1455 @@ + + + + Obce + Data|Obce|Obec + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice3 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + StatusKod + StatusKod + Integer + + + + OkresKod + Okres|Kod + Integer + + + + PouKod + Pou|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + CleneniSMRozsahKod + CleneniSMRozsahKod + Integer + + + + CleneniSMTypKod + CleneniSMTypKod + Integer + + + + NutsLau + NutsLau + String + 12 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + SpravniObvody + Data|SpravniObvody|SpravniObvod + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniMomcKod + SpravniMomcKod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Mop + Data|Mop|Mop + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Momc + Data|Momc|Momc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + MopKod + Mop|Kod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + SpravniObvodKod + SpravniObvod|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + CastiObci + Data|CastiObci|CastObce + + + DefinicniBod + Geometrie|DefinicniBod + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + KatastralniUzemi + Data|KatastralniUzemi|KatastralniUzemi + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice2 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ExistujeDigitalniMapa + ExistujeDigitalniMapa + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Zsj + Data|Zsj|Zsj + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + Vymera + Vymera + Integer + Integer64 + + + + CharakterZsjKod + CharakterZsjKod + Integer + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Ulice + Data|Ulice|Ulice + + + DefinicniCara + Geometrie|DefinicniCara + MultiLineString + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + + Parcely + Data|Parcely|Parcela + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + Polygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Id + Id + Integer + Integer64 + + + + Nespravny + Nespravny + String + 5 + + + + KmenoveCislo + KmenoveCislo + Integer + + + + PododdeleniCisla + PododdeleniCisla + Integer + + + + VymeraParcely + VymeraParcely + Integer + Integer64 + + + + ZpusobyVyuzitiPozemku + ZpusobyVyuzitiPozemku + Integer + + + + DruhCislovaniKod + DruhCislovaniKod + Integer + + + + DruhPozemkuKod + DruhPozemkuKod + Integer + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + BonitovanyDilVymera + BonitovaneDily|BonitovanyDil|Vymera + IntegerList + + + + BonitovanyDilBonitovanaJednotkaKod + BonitovaneDily|BonitovanyDil|BonitovanaJednotkaKod + IntegerList + + + + BonitovanyDilIdTranskace + BonitovaneDily|BonitovanyDil|IdTranskace + IntegerList + Integer64 + + + + BonitovanyDilRizeniId + BonitovaneDily|BonitovanyDil|RizeniId + IntegerList + Integer64 + + + + ZpusobOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchranyPozemku|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchranyPozemku|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + + StavebniObjekty + Data|StavebniObjekty|StavebniObjekt + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CislaDomovni|CisloDomovni + IntegerList + + + + IdentifikacniParcelaId + IdentifikacniParcela|Id + Integer + Integer64 + + + + TypStavebnihoObjektuKod + TypStavebnihoObjektuKod + Integer + + + + ZpusobVyuzitiKod + ZpusobVyuzitiKod + Integer + + + + CastObceKod + CastObce|Kod + Integer + + + + MomcKod + Momc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + + Dokonceni + Dokonceni + String + 19 + + + + DruhKonstrukceKod + DruhKonstrukceKod + Integer + + + + ObestavenyProstor + ObestavenyProstor + Integer + + + + PocetBytu + PocetBytu + Integer + + + + PocetPodlazi + PocetPodlazi + Integer + + + + PodlahovaPlocha + PodlahovaPlocha + Integer + + + + PripojeniKanalizaceKod + PripojeniKanalizaceKod + Integer + + + + PripojeniPlynKod + PripojeniPlynKod + Integer + + + + PripojeniVodovodKod + PripojeniVodovodKod + Integer + + + + VybaveniVytahemKod + VybaveniVytahemKod + Integer + + + + ZastavenaPlocha + ZastavenaPlocha + Integer + + + + ZpusobVytapeniKod + ZpusobVytapeniKod + Integer + + + + ZpusobOchranyKod + ZpusobyOchrany|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchrany|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchrany|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchrany|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + DetailniTEAKod + DetailniTEA|DetailniTEA|Kod + IntegerList + + + + DetailniTEAPlatiOd + DetailniTEA|DetailniTEA|PlatiOd + StringList + 19 + + + + DetailniTEAGlobalniIdNavrhuZmeny + DetailniTEA|DetailniTEA|GlobalniIdNavrhuZmeny + IntegerList + Integer64 + + + + DetailniTEADruhKonstrukceKod + DetailniTEA|DetailniTEA|DruhKonstrukceKod + IntegerList + + + + DetailniTEAPocetBytu + DetailniTEA|DetailniTEA|PocetBytu + IntegerList + + + + DetailniTEAPocetPodlazi + DetailniTEA|DetailniTEA|PocetPodlazi + IntegerList + + + + DetailniTEAPripojeniKanalizaceKod + DetailniTEA|DetailniTEA|PripojeniKanalizaceKod + IntegerList + + + + DetailniTEAPripojeniPlynKod + DetailniTEA|DetailniTEA|PripojeniPlynKod + IntegerList + + + + DetailniTEAPripojeniVodovodKod + DetailniTEA|DetailniTEA|PripojeniVodovodKod + IntegerList + + + + DetailniTEAZpusobVytapeniKod + DetailniTEA|DetailniTEA|ZpusobVytapeniKod + IntegerList + + + + DetailniTEAAdresniMistoKod + DetailniTEA|DetailniTEA|AdresniMistoKod|Kod + IntegerList + + + + + AdresniMista + Data|AdresniMista|AdresniMisto + + + AdresniBod + Geometrie|DefinicniBod|AdresniBod + Point + + + + Zachranka + Geometrie|DefinicniBod|Zachranka + Point + + + + Hasici + Geometrie|DefinicniBod|Hasici + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CisloDomovni + Integer + + + + CisloOrientacni + CisloOrientacni + Integer + + + + CisloOrientacniPismeno + CisloOrientacniPismeno + String + 1 + + + + Psc + Psc + Integer + + + + StavebniObjektKod + StavebniObjekt|Kod + Integer + + + + UliceKod + Ulice|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs new file mode 100644 index 00000000..c8b532fe --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_uvoh_v1.gfs @@ -0,0 +1,86 @@ + + + + VolebniOkrsek + Data|VolebniOkrsek|VO + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Cislo + Cislo + Integer + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + MomcKod + Momc|Kod + Integer + + + + Poznamka + Poznamka + String + 60 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs new file mode 100644 index 00000000..e585f1bd --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_st_v1.gfs @@ -0,0 +1,1489 @@ + + + + Staty + Data|Staty|Stat + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 2 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + RegionySoudrznosti + Data|RegionySoudrznosti|RegionSoudrznosti + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Kraje + Data|Kraje|Kraj + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Vusc + Data|Vusc|Vusc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + 6 + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + RegionSoudrznostiKod + RegionSoudrznosti|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 5 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Okresy + Data|Okresy|Okres + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + KrajKod + Kraj|Kod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 6 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Orp + Data|Orp|Orp + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Pou + Data|Pou|Pou + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + 6 + + + + OrpKod + Orp|Kod + Integer + 6 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Obce + Data|Obce|Obec + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice3 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + StatusKod + StatusKod + Integer + + + + OkresKod + Okres|Kod + Integer + + + + PouKod + Pou|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + CleneniSMRozsahKod + CleneniSMRozsahKod + Integer + + + + CleneniSMTypKod + CleneniSMTypKod + Integer + + + + NutsLau + NutsLau + String + 12 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + SpravniObvody + Data|SpravniObvody|SpravniObvod + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniMomcKod + SpravniMomcKod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Mop + Data|Mop|Mop + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Momc + Data|Momc|Momc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + MopKod + Mop|Kod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + SpravniObvodKod + SpravniObvod|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + CastiObci + Data|CastiObci|CastObce + + + DefinicniBod + Geometrie|DefinicniBod + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + KatastralniUzemi + Data|KatastralniUzemi|KatastralniUzemi + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice2 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ExistujeDigitalniMapa + ExistujeDigitalniMapa + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Zsj + Data|Zsj|Zsj + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + Vymera + Vymera + Integer + Integer64 + + + + CharakterZsjKod + CharakterZsjKod + Integer + + + + DatumVzniku + DatumVzniku + String + 19 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs new file mode 100644 index 00000000..9d62bcf4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/ruian_vf_v1.gfs @@ -0,0 +1,2126 @@ + + + + Staty + Data|Staty|Stat + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 2 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + RegionySoudrznosti + Data|RegionySoudrznosti|RegionSoudrznosti + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Kraje + Data|Kraje|Kraj + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + StatKod + Stat|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 4 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Vusc + Data|Vusc|Vusc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice5 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + 6 + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + RegionSoudrznostiKod + RegionSoudrznosti|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 5 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Okresy + Data|Okresy|Okres + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + KrajKod + Kraj|Kod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + NutsLau + NutsLau + String + 6 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Orp + Data|Orp|Orp + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + + + + VuscKod + Vusc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Pou + Data|Pou|Pou + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice4 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniObecKod + SpravniObecKod + Integer + 6 + + + + OrpKod + Orp|Kod + Integer + 6 + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Obce + Data|Obce|Obec + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice3 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + StatusKod + StatusKod + Integer + + + + OkresKod + Okres|Kod + Integer + + + + PouKod + Pou|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + CleneniSMRozsahKod + CleneniSMRozsahKod + Integer + + + + CleneniSMTypKod + CleneniSMTypKod + Integer + + + + NutsLau + NutsLau + String + 12 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + SpravniObvody + Data|SpravniObvody|SpravniObvod + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + SpravniMomcKod + SpravniMomcKod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Mop + Data|Mop|Mop + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 32 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Momc + Data|Momc|Momc + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + MopKod + Mop|Kod + Integer + + + + ObecKod + Obec|Kod + Integer + + + + SpravniObvodKod + SpravniObvod|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + VlajkaText + VlajkaText + String + 4000 + + + + VlajkaObrazek + VlajkaObrazek + Complex + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + ZnakText + ZnakText + String + 4000 + + + + ZnakObrazek + ZnakObrazek + Complex + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + CastiObci + Data|CastiObci|CastObce + + + DefinicniBod + Geometrie|DefinicniBod + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + KatastralniUzemi + Data|KatastralniUzemi|KatastralniUzemi + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + GeneralizovaneHranice + Geometrie|GeneralizovaneHranice2 + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ExistujeDigitalniMapa + ExistujeDigitalniMapa + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Zsj + Data|Zsj|Zsj + + + DefinicniBod + Geometrie|DefinicniBod + MultiPoint + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + MluvnickeCharakteristikyPad2 + MluvnickeCharakteristiky|Pad2 + String + 48 + + + MluvnickeCharakteristikyPad3 + MluvnickeCharakteristiky|Pad3 + String + 48 + + + MluvnickeCharakteristikyPad4 + MluvnickeCharakteristiky|Pad4 + String + 48 + + + MluvnickeCharakteristikyPad6 + MluvnickeCharakteristiky|Pad6 + String + 48 + + + MluvnickeCharakteristikyPad7 + MluvnickeCharakteristiky|Pad7 + String + 48 + + + + Vymera + Vymera + Integer + Integer64 + + + + CharakterZsjKod + CharakterZsjKod + Integer + + + + DatumVzniku + DatumVzniku + String + 19 + + + + + Ulice + Data|Ulice|Ulice + + + DefinicniCara + Geometrie|DefinicniCara + MultiLineString + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nazev + Nazev + String + 48 + + + + Nespravny + Nespravny + String + 5 + + + + ObecKod + Obec|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + + Parcely + Data|Parcely|Parcela + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + Polygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Id + Id + Integer + Integer64 + + + + Nespravny + Nespravny + String + 5 + + + + KmenoveCislo + KmenoveCislo + Integer + + + + PododdeleniCisla + PododdeleniCisla + Integer + + + + VymeraParcely + VymeraParcely + Integer + Integer64 + + + + ZpusobyVyuzitiPozemku + ZpusobyVyuzitiPozemku + Integer + + + + DruhCislovaniKod + DruhCislovaniKod + Integer + + + + DruhPozemkuKod + DruhPozemkuKod + Integer + + + + KatastralniUzemiKod + KatastralniUzemi|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + RizeniId + RizeniId + Integer + Integer64 + + + + BonitovanyDilVymera + BonitovaneDily|BonitovanyDil|Vymera + IntegerList + + + + BonitovanyDilBonitovanaJednotkaKod + BonitovaneDily|BonitovanyDil|BonitovanaJednotkaKod + IntegerList + + + + BonitovanyDilIdTranskace + BonitovaneDily|BonitovanyDil|IdTranskace + IntegerList + Integer64 + + + + BonitovanyDilRizeniId + BonitovaneDily|BonitovanyDil|RizeniId + IntegerList + Integer64 + + + + ZpusobOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchranyPozemku|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchranyPozemku|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchranyPozemku|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + + StavebniObjekty + Data|StavebniObjekty|StavebniObjekt + + + DefinicniBod + Geometrie|DefinicniBod + Point + + + + OriginalniHranice + Geometrie|OriginalniHranice + MultiPolygon + + + + OriginalniHraniceOmpv + Geometrie|OriginalniHraniceOmpv + MultiPolygon + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CislaDomovni|CisloDomovni + IntegerList + + + + IdentifikacniParcelaId + IdentifikacniParcela|Id + Integer + Integer64 + + + + TypStavebnihoObjektuKod + TypStavebnihoObjektuKod + Integer + + + + ZpusobVyuzitiKod + ZpusobVyuzitiKod + Integer + + + + CastObceKod + CastObce|Kod + Integer + + + + MomcKod + Momc|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + + Dokonceni + Dokonceni + String + 19 + + + + DruhKonstrukceKod + DruhKonstrukceKod + Integer + + + + ObestavenyProstor + ObestavenyProstor + Integer + + + + PocetBytu + PocetBytu + Integer + + + + PocetPodlazi + PocetPodlazi + Integer + + + + PodlahovaPlocha + PodlahovaPlocha + Integer + + + + PripojeniKanalizaceKod + PripojeniKanalizaceKod + Integer + + + + PripojeniPlynKod + PripojeniPlynKod + Integer + + + + PripojeniVodovodKod + PripojeniVodovodKod + Integer + + + + VybaveniVytahemKod + VybaveniVytahemKod + Integer + + + + ZastavenaPlocha + ZastavenaPlocha + Integer + + + + ZpusobVytapeniKod + ZpusobVytapeniKod + Integer + + + + ZpusobOchranyKod + ZpusobyOchrany|ZpusobOchrany|Kod + IntegerList + + + + ZpusobOchranyTypOchranyKod + ZpusobyOchrany|ZpusobOchrany|TypOchranyKod + IntegerList + + + + ZpusobOchranyIdTransakce + ZpusobyOchrany|ZpusobOchrany|IdTransakce + IntegerList + + + + ZpusobOchranyRizeniId + ZpusobyOchrany|ZpusobOchrany|RizeniId + IntegerList + Integer64 + + + + DetailniTEAKod + DetailniTEA|DetailniTEA|Kod + IntegerList + + + + DetailniTEAPlatiOd + DetailniTEA|DetailniTEA|PlatiOd + StringList + 19 + + + + DetailniTEAGlobalniIdNavrhuZmeny + DetailniTEA|DetailniTEA|GlobalniIdNavrhuZmeny + IntegerList + Integer64 + + + + DetailniTEADruhKonstrukceKod + DetailniTEA|DetailniTEA|DruhKonstrukceKod + IntegerList + + + + DetailniTEAPocetBytu + DetailniTEA|DetailniTEA|PocetBytu + IntegerList + + + + DetailniTEAPocetPodlazi + DetailniTEA|DetailniTEA|PocetPodlazi + IntegerList + + + + DetailniTEAPripojeniKanalizaceKod + DetailniTEA|DetailniTEA|PripojeniKanalizaceKod + IntegerList + + + + DetailniTEAPripojeniPlynKod + DetailniTEA|DetailniTEA|PripojeniPlynKod + IntegerList + + + + DetailniTEAPripojeniVodovodKod + DetailniTEA|DetailniTEA|PripojeniVodovodKod + IntegerList + + + + DetailniTEAZpusobVytapeniKod + DetailniTEA|DetailniTEA|ZpusobVytapeniKod + IntegerList + + + + DetailniTEAAdresniMistoKod + DetailniTEA|DetailniTEA|AdresniMistoKod|Kod + IntegerList + + + + + AdresniMista + Data|AdresniMista|AdresniMisto + + + AdresniBod + Geometrie|DefinicniBod|AdresniBod + Point + + + + Zachranka + Geometrie|DefinicniBod|Zachranka + Point + + + + Hasici + Geometrie|DefinicniBod|Hasici + Point + + urn:ogc:def:crs:EPSG::5514 + + + Kod + Kod + Integer + + + + Nespravny + Nespravny + String + 5 + + + + CisloDomovni + CisloDomovni + Integer + + + + CisloOrientacni + CisloOrientacni + Integer + + + + CisloOrientacniPismeno + CisloOrientacniPismeno + String + 1 + + + + Psc + Psc + Integer + + + + StavebniObjektKod + StavebniObjekt|Kod + Integer + + + + UliceKod + Ulice|Kod + Integer + + + + PlatiOd + PlatiOd + String + 19 + + + + PlatiDo + PlatiDo + String + 19 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + + GlobalniIdNavrhuZmeny + GlobalniIdNavrhuZmeny + Integer + Integer64 + + + + IsknBudovaId + IsknBudovaId + Integer + Integer64 + + + + + ZaniklePrvky + Data|ZaniklePrvky|ZaniklyPrvek + + + TypPrvkuKod + TypPrvkuKod + String + 2 + + + + PrvekId + PrvekId + Integer + Integer64 + + + + IdTransakce + IdTransakce + Integer + Integer64 + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57agencies.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57agencies.csv new file mode 100644 index 00000000..b60016d3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57agencies.csv @@ -0,0 +1,249 @@ +#AgencyID,Token,Code,AgencyName +1,AE,530,Ministry of Communications, United Arab Emirates +2,AR,1,Servicio de Hidrografia Naval, Argentina +3,AU,10,Hydrographic Service, Royal Australian Navy, Australia +4,BH,20,Hydrographic Section, Survey Directorate, Bahrain +5,BE,30,Antwerpse Zeediensten Hydrografie, Belgium +6,B1,31,Dienst der Kust Hydrografie, Belgium +7,BR,40,Diretoria de Hidrografia e Navegacao, Brazil +8,CA,50,Canadian Hydrographic Service, Canada +9,CL,60,Servicio Hidrogr fico y Oceanogr fico de la Armada, Chile +10,CN,70,Maritime Safety Administration, China +11,C1,71,Navigation Guarantee Department, China +12,C2,72,Hong Kong Hydrographic Service +13,HR,80,Drzavni Hidrografski Institut, Croatia +14,CU,90,Instituto Cubano de Hidrografia, Cuba +15,CY,100,Department of Lands & Surveys, Hydrographic Unit, Cyprus +16,DK,110,Kort-Og Matrikelstyrelsen, Denmark +17,D1,111,Farvandsvaesenet, Denmark +18,DO,120,Departamento Hidrografico, Marina de Guerra, Dominican Rep. +19,DZ,610,Service Hydrographique des forces navales, Algeria +20,EC,130,Instituto Oceanografico de la Armada, Ecuador +21,EG,140,Shobat al Misaha al Baharia, Egypt +22,FJ,150,Fiji Hydrographic Service, Fiji +23,FI,160,Merenkulkuhallitus, Merikarttaosasto, Finland +24,FR,170,Service Hydrographique et Oceanographique de la Marine, France +25,DE,180,Bundesamt fuer Seeschiffahrt und Hydrographie, Germany +26,GR,190,Hellenic Navy Hydrographic Service, Greece +27,GT,200,Departamento de Sistemas Hidraulicos, Guatemala +28,G1,201,Instituto Geogr fico Militar, Guatemala +29,IS,210,Sjomaelingar Islands, Iceland +30,IN,220,Naval Hydrographic Office, India +31,ID,230,Dinas Hidro-Oseanografi (Dishidros), Indonesia +32,IR,240,Ports and Shipping Organization, Iran +33,IT,250,Istituto Idrografico della Marina, Italy +34,JP,260,Japan Hydrographic Department, Japan +35,KR,270,Hydrographic Department of the DPRK, Korea (DPR of) +36,KP,280,Office of Hydrographic Affairs, Korea (Rep. of) +37,MY,290,Royal Malaysian Navy Hydrographic Department, Malaysia +38,MC,300,Departement des Travaux Publics et des Affaires Sociales, Monaco +39,NL,310,Dienst der Hydrografie Koninklijke Marine, Netherlands +40,NZ,320,Royal New Zealand Navy Hydrographic Office, New Zealand +41,NG,330,Nigerian Navy Hydrographic Office, Nigeria +42,NO,340,Norwegian Hydrographic Service, Norway +43,N1,341,Electronic Chart Centre, Norway +44,OM,350,National Hydrographic Organization, Oman +45,PK,360,Pakistan Hydrographic Department, Pakistan +46,PG,370,Department of Transport, Maritime Division, Papua New Guinea +47,PE,380,Direccion de Hidrografia y Navegacion de la Marina, Peru +48,PH,390,Coast & Geodetic Survey Dept., Philippines +49,PL,400,Biuro Hydrograficzne Marynarki Wojennej, Poland +50,PT,410,Instituto Hidrografico, Portugal +51,RU,420,Head Department of Navigation & Oceanography, Russian Federation +52,SG,430,Hydrographic Department, Singapore +53,ZA,440,South African Navy Hydrographic Office, South Afrika (Rep. of) +54,ES,450,Instituto Hidrogr fico de la Marina, Spain +55,LK,460,National Aquatic Resources Agency, Sri Lanka +56,SR,470,Ministry of Transports, Maritime Affairs, Suriname +57,SE,480,Sjoekarteavdelningen, Sweden +58,SY,490,General Directorate of Ports, Syria +59,TH,500,Krom Utoksastr, Thailand +60,TT,510,Trinidad & Tobago Hydrographic Unit, Trinidad & Tobago +61,TR,520,Seyir, Hidrografi ve Osinografi Dairesi Baskanligi, Turkey +62,GB,540,Hydrographic Office, UK +63,US,550,Office of Coast Survey, USA +64,U1,551,National Imagery and Mapping Agency, USA +65,U2,552,Naval Oceanography Command, USA +66,U3,553,US Army Corps of Engineers +67,UY,560,Servicio de Oceanografia, Hidrografia y Meteorologia de la Armada, Uruguay +68,VE,570,Direccion de Hidrografia y Navegacion, Venezuela +69,YU,580,Hydrographic Institute of the Navy, Yugoslavia +70,ZR,590,Direction de la Marine et des Voies Navigables, Zaire +71,AL,600,Sherbimi Hidrografik Shqiptar, Albania +72,AO,620,Not known, Angola +73,AG,630,Department of Marine Services and Merchant Shipping, Antigua and Barbuda +74,AW,640,Not known, Aruba +75,BS,650,Department of Lands and Surveys, Bahamas +76,BD,660,Department of Hydrography, Bangladesh +77,BB,670,Barbados Port Authority, Barbados +78,BZ,680,Not known, Belize +79,BJ,690,Direction Generale du Port Autonome de Cotonou, Benin +80,BO,700,Servicio de Hidrografia Naval, Bolivia +81,BN,710,Department of Marine, Brunei Darussalam +82,BG,720,Hidrografska Sluzhba Pri Ministerstvo Na Otbranata, Bulgaria +83,KH,730,Service de l'Hydraulique et des Voies Navigables, Cambodia +84,CM,740,Office National des Ports du Cameroun, Cameroon +85,CV,750,Direccao Geral da Marinha Mercante, Cape Verde +86,CO,760,Ministerio de Defensa Nacional, Armada Nacional, Direccion General Maritima, Colombia +87,KM,770,Not known, Comoros +88,CG,780,Direction du Port de Pointe-Noire, Congo +89,CK,790,Department of Trade Labour and Transport, Cook Islands +90,CR,800,Ministerio de Obras Publicas y Transportes, Costa Rica +91,CI,810,Direction G_n_rale du Port Autonome d'Abidjan, Cote-d'Ivoire +92,DJ,820,Ministere du Port et des Affaires Maritimes, Djibuti +93,DM,830,Not known, Dominica +94,SV,840,Instituto Geografico Nacional, El Salvador +95,GQ,850,Not known, Equatorial Guinea +96,ER,860,Port and Maritime Transport Authority, Eritrea +97,EE,870,Tuletorni - Huedrograafiatalitus, Estonia +98,ET,880,Ministry of Transport and Communications, Ethiopia +99,GA,890,Service de la Signalisation Maritime, Gabon +100,GM,900,Gambia Ports Authority, Gambia +101,GH,910,Ghana Ports and Harbours Authority, Ghana +102,GD,920,Grenada Ports Authority, Grenada +103,GN,930,Minist_re des Transports et Travaux Publics, Guinea +104,GW,940,Servicos da Marinha, Guinea-Bissau +105,GY,950,Transport and Harbours Department, Guyana +106,HT,960,Service Maritime et de Navigation d'Haiti, Haiti +107,HN,970,Departamento de Geologia e Hidrografia, Honduras +108,IQ,980,Marine Department, Iraq +109,IE,990,Department of the Marine, Ireland +110,IL,1000,Administration of Shipping and Ports, Israel +111,JM,1010,Harbour Master's Department, Jamaica +112,JO,1020,The Ports Corporation, Jordan +113,KE,1030,Survey of Kenya, Kenya +114,KI,1040,Ministry of Transport and Communications, Kiribati +115,KW,1050,Ministry of Communications, Kuwait +116,LV,1060,Latvijas Hidrografijas Dienests, Latvia +117,LB,1070,Service du Transport Maritime, Lebanon +118,LR,1080,Ministry of Lands, Mines and Energy, Liberia +119,LY,1090,Not known, Libyan Arab Jamahiriya +120,LT,1100,Klaipeda State Seaport Authority, Lithuania +121,MG,1110,Foiben-Taosarintanin'i Madagasikara, Madagascar +122,MW,1120,Hydrographic Survey Unit, Malawi +123,MV,1130,Department of Information and Broadcasting, Maldives +124,MT,1140,Malta Maritime Authority Ports Directorate, Malta +125,MH,1150,Ministry of Resources and Development, Marshall Islands +126,MR,1160,Ministere de la Defense Nationale, Mauritania +127,MU,1170,Ministry of Housing, Lands and Town and Country Planning, Mauritius +128,MX,1180,Direccion General de Oceanografia Naval, Mexiko +129,FM,1190,Not known, Micronesia (Federated State of) +130,MA,1200,Service Hydrographique et Oceanographique de la Marine Royale, Morocco +131,MZ,1210,Instituto Nacional de Hidrografia e Navegacao, Mozambique +132,MM,1220,Naval Hydrographic Office, Myanmar +133,NA,1230,Not known, Namibia +134,NR,1240,Nauru Phosphate Corporation, Nauru +135,NI,1250,Secretaria de Planificacion y Presupuesto de la Presidencia de la Republica, Instituto Nicaraguense de Estudios Territoriales, Nicaragua +136,PW,1260,Bureau of Domestic Affairs, Palau +137,PA,1270,Instituto Geografico Nacional, Panama +138,PY,1280,Direccion de Hidrografia y Navegacion, Paraguay +139,QA,1290,Ministry of Municipal Affairs and Agriculture, Qatar +140,RO,1300,Directia Hidrografica Maritima, Romania +141,KN,1310,St. Christopher Air and Sea Ports Authority, Hydrographic Service, Saint Kitts and Nevis +142,LC,1320,Ministry of Planning, Personnel Establishment and Training, Saint Lucia +143,VC,1330,Ministry of Communications and Works, Saint Vincent and Grenadines +144,WS,1340,Ministry of Transport, Marine and Shipping Division, Samoa +145,ST,1350,Not known, Sao Tombe and Principe +146,SA,1360,Military Survey Department, Hydrographic Section, Saudi Arabia +147,SN,1370,Ministere de l'Equipement, des Transports et de la Mer, Senegal +148,SC,1380,Hydrographic and Topographic Brigade, Seychelles +149,SL,1390,Department of Transport and Communications, Sierra Leone +150,SI,1400,Not known, Slovenia +151,SB,1410,Solomon Islands Hydrographic Unit, Solomon Islands +152,SO,1420,Somali Hydrographic Office, Marine Department, Ministry of Marine Transports and Ports, Somalia +153,SD,1430,Survey Department, Sudan +154,TZ,1440,Tanzania Harbours Authority, Tanzania +155,TG,1450,University of Benin, Togo +156,TK,1460,Not known, Tokelau +157,TN,1470,Service Hydrographique et Oceanographique, Armee de Mer, Ministere de la Defense Nationale, Tunisia +158,TV,1480,Ministry of Labour, Works and Communications, Tuvalu +159,UA,1490,National Agency of Marine Research and Technology, Ukraine +160,VU,1500,Vanuatu Hydrographic Unit, Vanuata +161,VN,1510,Not known, Vietnam +162,YE,1520,Ministry of Communications, Yemen Ports and Shipping Corporation, Yemen Ports Authority, Yemen +163,QM,1600,Antarctic Treaty Consultative Committee +164,QN,1610,International Radio Consultative Committee +165,QO,1620,Comite International Radio-Maritime +166,QP,1630,IHO Data Centre for Digital Bathymetry +167,QQ,1640,Digital Geographic Information Working Group +168,QR,1650,European Communities Commission +169,QS,1660,European Harbour Masters Association +170,QT,1670,Food and Agriculture Organization +171,QU,1680,Federation Internationale des Geometres +172,QV,1690,International Atomic Energy Agency +173,QW,1700,International Association of Geodesy +174,QX,1710,International Association of Institutes of Navigation +175,QY,1720,International Association of Lighthouse Authorities +176,QZ,1730,International Association of Ports and Harbours +177,XA,1740,International Cartographic Association +178,XB,1750,International Cable Protection Committee +179,XC,1760,International Chamber of Shipping +180,XD,1770,International Commission for the Scientific Exploration of the Mediterranean +181,XE,1780,International Council of Scientific Unions +182,XF,1790,International Electrotechnical Commission +183,XG,1800,International Geographical Union +184,AA,1810,International Hydrographic Organization +185,XH,1820,International Maritime Academy +186,XI,1830,International Maritime Organization +187,XJ,1840,International Maritime Satellite Organization +188,XK,1850,Intergovernmental Oceanographic Commission +189,XL,1860,International Organization for Standardization +190,XM,1870,International Society for Photogrammetry and Remote Sensing +191,XN,1880,International Telecommunication Union +192,XO,1890,International Union of Geodesy and Geophysics +193,XP,1900,International Union of Surveying and Mapping +194,XQ,1910,Oil Companies International Marine Forum +195,XR,1920,Pan American Institute of Geography and History +196,XS,1930,Radio Technical Commission for Maritime Services +197,XT,1940,Scientific Commission on Antarctic Research +198,XU,1950,The Hydrographic Society +199,XV,1960,World Meteorological Organization +200,XW,1970,United Nations, Office for Ocean Affairs and Law of the Sea +201,PM,2020,PRIMAR - European ENC Coordinating Centre +202,1A,6682,ARAMCO +203,1B,0,UKHO test and sample datasets +204,1C,7196,CARIS +205,1D,7453,Amt fuer Geoinformationswesen der Bundeswehr +206,1E,7710,TerraNautical Data, Inc. +207,1F,7967,Force Technology, Danish Maritime Institute +208,1G,7968,_sterreichische Donau-Technik-GmbH +209,1H,7969,Vituki Water Resources Research Centre Hungary +210,1I,7970,Navionics S.p.A. +211,1K,7972,Kingway Technology Co +212,1L,7973,Laser-Scan Ltd +213,1M,7974,Channel of Moscow +214,1N,7975,Nautical Data International, Inc. +215,1O,7976,Offshore Charts Ltd. +216,1P,7977,Port Of London +217,1Q,7978,Quality Positioning Services +218,1R,7979,Rijkswaterstaat +219,1S,7980,Austrian Supreme Shippig Authority +220,1T,7981,UKHO - private production +221,1U,7982,ENC Center, National Taiwan Ocean University +222,1V,7983,The Volga-Baltic State Territorial Department for Waterways Management and Navigation +223,1W,7984,Wasser- und Schiffahrtsverwaltung des Bundes - Wasser- und Schiffahrtsdirektion S_d-West +224,1X,7985,Noorderzon Software +225,2A,10794,Azienda Regionale Navigazione Interna (ARNI) +226,2C,11308,IIC Technologies +227,2I,12056,Innovative Navigation GmbH +228,2M,12060,MARIN (Maritime Research Institute Netherlands) +229,2P,12063,PLOVPUT Beograd +230,2R,12065,Port of Rotterdam +231,2S,12079,Ssangyong Information & Communications Corp. +232,2T,12093,Transas Marine +233,2W,12096,Austrian Waterways Authority +234,3R,16203,A.F.D.J. R.A. Galati +235,3S,16204,Science Applications International Corp. +236,4R,20315,MD Atlantic Technologies +237,3T,16205,Tresco Navigation Systems +238,5M,24422,Hydrographic Office of Sarawak Marine Department +239,5T,24455,TEC Asociados +240,6C,27756,Guoy Consultancy Sdn Bhd +241,7C,31868,SevenCs AG & Co KG +242,7R,32651,The Federal Service of Geodesy and Cartography of Russia +243,7S,32652,Centre Sevzapgeoinform (SZGI) +244,7T,32653,Terra Corp +245,8A,35466,HSA Systems Pty Ltd +246,9A,39578,CherSoft Ltd +247,9T,40877,Tresco Engineering bvba +248,0_,65534,unknown producer diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57attributes.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57attributes.csv new file mode 100644 index 00000000..3b2c04e3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57attributes.csv @@ -0,0 +1,484 @@ +"Code","Attribute","Acronym","Attributetype","Class" +1,Agency responsible for production,AGENCY,A,F +2,Beacon shape,BCNSHP,E,F +3,Building shape,BUISHP,E,F +4,Buoy shape,BOYSHP,E,F +5,Buried depth,BURDEP,F,F +6,Call sign,CALSGN,S,F +7,Category of airport/airfield,CATAIR,L,F +8,Category of anchorage,CATACH,L,F +9,Category of bridge,CATBRG,L,F +10,Category of built-up area,CATBUA,E,F +11,Category of cable,CATCBL,E,F +12,Category of canal,CATCAN,E,F +13,Category of cardinal mark,CATCAM,E,F +14,Category of checkpoint,CATCHP,E,F +15,Category of coastline,CATCOA,E,F +16,Category of control point,CATCTR,E,F +17,Category of conveyor,CATCON,E,F +18,Category of coverage,CATCOV,E,F +19,Category of crane,CATCRN,E,F +20,Category of dam,CATDAM,E,F +21,Category of distance mark,CATDIS,E,F +22,Category of dock,CATDOC,E,F +23,Category of dumping ground,CATDPG,L,F +24,Category of fence/wall,CATFNC,E,F +25,Category of ferry,CATFRY,E,F +26,Category of fishing facility,CATFIF,E,F +27,Category of fog signal,CATFOG,E,F +28,Category of fortified structure,CATFOR,E,F +29,Category of gate,CATGAT,E,F +30,Category of harbour facility,CATHAF,L,F +31,Category of hulk,CATHLK,L,F +32,Category of ice,CATICE,E,F +33,Category of installation buoy,CATINB,E,F +34,Category of land region,CATLND,L,F +35,Category of landmark,CATLMK,L,F +36,Category of lateral mark,CATLAM,E,F +37,Category of light,CATLIT,L,F +38,Category of marine farm/culture,CATMFA,E,F +39,Category of military practice area,CATMPA,L,F +40,Category of mooring/warping facility,CATMOR,E,F +41,Category of navigation line,CATNAV,E,F +42,Category of obstruction,CATOBS,E,F +43,Category of offshore platform,CATOFP,L,F +44,Category of oil barrier,CATOLB,E,F +45,Category of pile,CATPLE,E,F +46,Category of pilot boarding place,CATPIL,E,F +47,Category of pipeline / pipe,CATPIP,L,F +48,Category of production area,CATPRA,E,F +49,Category of pylon,CATPYL,E,F +50,Category of quality of data,CATQUA,E,F +51,Category of radar station,CATRAS,E,F +52,Category of radar transponder beacon,CATRTB,E,F +53,Category of radio station,CATROS,L,F +54,Category of recommended track,CATTRK,E,F +55,Category of rescue station,CATRSC,L,F +56,Category of restricted area,CATREA,L,F +57,Category of road,CATROD,E,F +58,Category of runway,CATRUN,E,F +59,Category of sea area,CATSEA,E,F +60,Category of shoreline construction,CATSLC,E,F +61,"Category of signal station, traffic",CATSIT,L,F +62,"Category of signal station, warning",CATSIW,L,F +63,Category of silo/tank,CATSIL,E,F +64,Category of slope,CATSLO,E,F +65,Category of small craft facility,CATSCF,L,F +66,Category of special purpose mark,CATSPM,L,F +67,Category of Traffic Separation Scheme,CATTSS,E,F +68,Category of vegetation,CATVEG,L,F +69,Category of water turbulence,CATWAT,E,F +70,Category of weed/kelp,CATWED,E,F +71,Category of wreck,CATWRK,E,F +72,Category of zone of confidence data,CATZOC,E,F +73,Character spacing,$SPACE,E,$ +74,Character specification,$CHARS,A,$ +75,Colour,COLOUR,L,F +76,Colour pattern,COLPAT,L,F +77,Communication channel,COMCHA,A,F +78,Compass size,$CSIZE,F,$ +79,Compilation date,CPDATE,A,F +80,Compilation scale,CSCALE,I,F +81,Condition,CONDTN,E,F +82,"Conspicuous, Radar",CONRAD,E,F +83,"Conspicuous, visual",CONVIS,E,F +84,Current velocity,CURVEL,F,F +85,Date end,DATEND,A,F +86,Date start,DATSTA,A,F +87,Depth range value 1,DRVAL1,F,F +88,Depth range value 2,DRVAL2,F,F +89,Depth units,DUNITS,E,F +90,Elevation,ELEVAT,F,F +91,Estimated range of transmission,ESTRNG,F,F +92,Exhibition condition of light,EXCLIT,E,F +93,Exposition of sounding,EXPSOU,E,F +94,Function,FUNCTN,L,F +95,Height,HEIGHT,F,F +96,Height/length units,HUNITS,E,F +97,Horizontal accuracy,HORACC,F,F +98,Horizontal clearance,HORCLR,F,F +99,Horizontal length,HORLEN,F,F +100,Horizontal width,HORWID,F,F +101,Ice factor,ICEFAC,F,F +102,Information,INFORM,S,F +103,Jurisdiction,JRSDTN,E,F +104,Justification - horizontal,$JUSTH,E,$ +105,Justification - vertical,$JUSTV,E,$ +106,Lifting capacity,LIFCAP,F,F +107,Light characteristic,LITCHR,E,F +108,Light visibility,LITVIS,L,F +109,Marks navigational - System of,MARSYS,E,F +110,Multiplicity of lights,MLTYLT,I,F +111,Nationality,NATION,A,F +112,Nature of construction,NATCON,L,F +113,Nature of surface,NATSUR,L,F +114,Nature of surface - qualifying terms,NATQUA,L,F +115,Notice to Mariners date,NMDATE,A,F +116,Object name,OBJNAM,S,F +117,Orientation,ORIENT,F,F +118,Periodic date end,PEREND,A,F +119,Periodic date start,PERSTA,A,F +120,Pictorial representation,PICREP,S,F +121,Pilot district,PILDST,S,F +122,Producing country,PRCTRY,A,F +123,Product,PRODCT,L,F +124,Publication reference,PUBREF,S,F +125,Quality of sounding measurement,QUASOU,L,F +126,Radar wave length,RADWAL,A,F +127,Radius,RADIUS,F,F +128,Recording date,RECDAT,A,F +129,Recording indication,RECIND,A,F +130,Reference year for magnetic variation,RYRMGV,A,F +131,Restriction,RESTRN,L,F +132,Scale maximum,SCAMAX,I,F +133,Scale minimum,SCAMIN,I,F +134,Scale value one,SCVAL1,I,F +135,Scale value two,SCVAL2,I,F +136,Sector limit one,SECTR1,F,F +137,Sector limit two,SECTR2,F,F +138,Shift parameters,SHIPAM,A,F +139,Signal frequency,SIGFRQ,I,F +140,Signal generation,SIGGEN,E,F +141,Signal group,SIGGRP,A,F +142,Signal period,SIGPER,F,F +143,Signal sequence,SIGSEQ,A,F +144,Sounding accuracy,SOUACC,F,F +145,Sounding distance - maximum,SDISMX,I,F +146,Sounding distance - minimum,SDISMN,I,F +147,Source date,SORDAT,A,F +148,Source indication,SORIND,A,F +149,Status,STATUS,L,F +150,Survey authority,SURATH,S,F +151,Survey date - end,SUREND,A,F +152,Survey date - start,SURSTA,A,F +153,Survey type,SURTYP,L,F +154,Symbol scaling factor,$SCALE,F,$ +155,Symbolization code,$SCODE,A,$ +156,Technique of sounding measurement,TECSOU,L,F +157,Text string,$TXSTR,S,$ +158,Textual description,TXTDSC,S,F +159,Tidal stream - panel values,TS_TSP,A,F +160,"Tidal stream, current - time series values",TS_TSV,A,F +161,Tide - accuracy of water level,T_ACWL,E,F +162,Tide - high and low water values,T_HWLW,A,F +163,Tide - method of tidal prediction,T_MTOD,E,F +164,Tide - time and height differences,T_THDF,A,F +165,"Tide, current - time interval of values",T_TINT,I,F +166,Tide - time series values,T_TSVL,A,F +167,Tide - value of harmonic constituents,T_VAHC,A,F +168,Time end,TIMEND,A,F +169,Time start,TIMSTA,A,F +170,Tint,$TINTS,E,$ +171,Topmark/daymark shape,TOPSHP,E,F +172,Traffic flow,TRAFIC,E,F +173,Value of annual change in magnetic variation,VALACM,F,F +174,Value of depth contour,VALDCO,F,F +175,Value of local magnetic anomaly,VALLMA,F,F +176,Value of magnetic variation,VALMAG,F,F +177,Value of maximum range,VALMXR,F,F +178,Value of nominal range,VALNMR,F,F +179,Value of sounding,VALSOU,F,F +180,Vertical accuracy,VERACC,F,F +181,Vertical clearance,VERCLR,F,F +182,"Vertical clearance, closed",VERCCL,F,F +183,"Vertical clearance, open",VERCOP,F,F +184,"Vertical clearance, safe",VERCSA,F,F +185,Vertical datum,VERDAT,E,F +186,Vertical length,VERLEN,F,F +187,Water level effect,WATLEV,E,F +188,Category of Tidal stream,CAT_TS,E,F +189,Positional accuracy units,PUNITS,E,F +190,Object class definition,CLSDEF,S,F +191,Object class name,CLSNAM,S,F +192,Symbol instruction,SYMINS,S,F +300,Information in national language,NINFOM,S,N +301,Object name in national language,NOBJNM,S,N +302,Pilot district in national language,NPLDST,S,N +303,Text string in national language,$NTXST,S,N +304,Textual description in national language,NTXTDS,S,N +400,Horizontal datum,HORDAT,E,S +401,Positional Accuracy,POSACC,F,S +402,Quality of position,QUAPOS,E,S +0,"###Codes in the 17xxx range come from past s57attributes_iw.csv (Inland Waterways)",###,S,F +17000,Category of Anchorage area,catach,L,F +17001,Category of distance mark,catdis,E,F +17002,Category of signal station trafficcatsit,catsit,L,F +17003,Category of signal station warning,catsiw,L,F +17004,Restriction,restrn,L,F +17005,Vertical datum,verdat,E,F +17006,Category of bridge,catbrg,L,F +17007,Category of ferry,catfry,L,F +17008,Category of harbour facilities,cathaf,L,F +17009,"Marks navigational – System of",marsys,E,F +17050,Additional mark,addmrk,L,F +17051,Category of bank,catbnk,E,F +17052,Category of notice mark,catnmk,E,F +17055,Class of dangerous cargo,clsdng,E,F +17056,Direction of impact,dirimp,L,F +17057,Distance from bank,disbk1,F,F +17058,Distance from bank,disbk2,F,F +17059,"Distance of impact, upstream",disipu,F,F +17060,"Distance of impact, downstream",disipd,F,F +17061,Elevation 1,eleva1,F,F +17062,Elevation 2,eleva2,F,F +17063,Function of notice mark,fnctnm,E,F +17064,Waterway distance,wtwdis,F,F +17065,Bunker vessel,bunves,E,F +17066,Category of berth,catbrt,L,F +17067,Category of bunker,catbun,L,F +17068,Category of CEMT class,catccl,L,F +17069,Category of communication,catcom,L,F +17070,Category of harbour area,cathbr,L,F +17071,Category of refuse dump,catrfd,L,F +17072,Category of terminal,cattml,L,F +17073,Communication,comctn,S,F +17074,"Horizontal clearance, length",horcll,F,F +17075,"Horizontal clearance, width",horclw,F,F +17076,Transshipping goods,trshgd,L,F +17077,UN Location Code,unlocd,S,F +17112,Category of waterway mark,catwwm,E,F +0,"###Codes in the 20xxx and 22xxx range come from past s57attributes_aml.csv (Additional_Military_Layers)",###,S,F +20484,"Abandonment Date","databa","A","?" +20485,"Attenuation","attutn","F","?" +20486,"Beam of Vessel","vesbem","F","?" +20487,"Bearing","bearng","F","?" +20488,"Blind Zone","blndzn","A","?" +20489,"Breaker Type","brktyp","E","?" +20490,"Density","bulkdn","F","?" +20491,"Burial Mechanism","brmchm","E","?" +20492,"Burial Percentage","brpctg","I","?" +20493,"Burial Period","brperd","I","?" +20494,"Burial Probability","brprob","E","?" +20495,"Cardinal Point Orientation","orcard","E","?" +20496,"Category of administration area","catadm","E","?" +20497,"Category of airspace restriction","catasr","E","?" +20498,"Category of bedrock","N/A","N/A","?" +20499,"Bottom Feature Classification","catbot","E","?" +20500,"Category of coastguard station","catcgs","E","?" +20501,"Category of controlled airspace","catcas","E","?" +20502,"Fishing Activity","catfsh","E","?" +20503,"Type of Imagery","catimg","L","?" +20504,"Category of marine management area","catmma","E","?" +20505,"Category of maritime safety information","catmsi","E","?" +20506,"Category of military exercise airspace ","catmea","E","?" +20507,"Category of patrol area","catpat","E","?" +20508,"Category of reporting/radio calling-in point","catrep","E","?" +20509,"Category of regulated airspace","N/A","N/A","?" +20510,"Category of territorial sea baseline","catsbl","E","?" +20511,"Trafficability","cattrf","E","?" +20512,"Command System","comsys","S","?" +20515,"Controlled airspace class designation","caircd","E","?" +20516,"Controlling authority","authty","S","?" +20517,"Current Scour Dimensions","scrdim","A","?" +20518,"Dangerous Marine and Land Life","dgmrlf","L","?" +20519,"Date Sunk","datsnk","A","?" +20520,"Debris Field","debfld","A","?" +20521,"Depth of Activity","depact","F","?" +20522,"Depth of Layer","deplyr","F","?" +20523,"Distance from Small Bottom Object","discon","F","?" +20524,"Diver’s Thrust Test Depth","dttdep","E","?" +20525,"Diver’s Thrust Test Number","dttnum","I","?" +20526,"Diving Activity","divact","E","?" +20527,"Draught of Vessel","vesdgh","F","?" +20528,"Exit Usability","exitus","E","?" +20529,"Field Name","fldnam","S","?" +20530,"First Detection Year","datfir","A","?" +20531,"First Sensor","senfir","E","?" +20532,"First Source","sorfir","E","?" +20533,"Foliar Index","folinx","F","?" +20534,"Gas Content","gascon","I","?" +20535,"General Water Depth","gendep","I","?" +20536,"Gradient","gradnt","E","?" +20537,"Grain Size","grnsiz","F","?" +20538,"Inclination","incltn","F","?" +20539,"Internal Data Record Identification Number","N/A","N/A","?" +20540,"Last Detection Year","datlst","A","?" +20541,"Last Sensor","senlst","E","?" +20542,"Last Source","sorlst","E","?" +20543,"Lay Platform","layptm","E","?" +20544,"Lay Reference Number","layrfn","S","?" +20545,"Lay Time","laytim","A","?" +20546,"Layer Number","laynum","I","?" +20547,"Legal Status","legsta","S","?" +20548,"Length of Vessel","veslen","F","?" +20549,"Magnetic Anomaly Detector (MAD) Signature","madsig","E","?" +20550,"Magnetic Intensity","magint","I","?" +20551,"Mean Shear Strength","msstrg","F","?" +20552,"Migration Direction","migdir","I","?" +20553,"Migration Speed","migspd","F","?" +20554,"Milec Density","milden","E","?" +20555,"Mine Index Mine Case","mnimnc","E","?" +20556,"Mine Index Mine Type","mnimnt","L","?" +20557,"Mine Reference Number","minern","S","?" +20558,"Mine-Hunting Classification","mhclas","E","?" +20559,"Minehunting System","mnhsys","S","?" +20560,"Minesweeping System","mnssys","S","?" +20561,"Mission Classification","miscls","E","?" +20562,"Mission Comments","miscom","S","?" +20563,"Mission Date","misdat","A","?" +20564,"Mission Name","misnme","S","?" +20565,"MWDC Reference Number","mwdcrn","S","?" +20566,"Nature of Geological Layer","natsed","E","?" +20567,"Navigation System","navsys","S","?" +20568,"NOMBO Density","nomden","E","?" +20569,"Not Found","notfnd","S","?" +20570,"Number of Previous Observations","nmprob","I","?" +20571,"Operator","oprtor","S","?" +20572,"Orientation of Best Observation","orbobn","F","?" +20573,"Origin of Data","orgdat","E","?" +20574,"Originator","orgntr","S","?" +20575,"Porosity","porsty","I","?" +20576,"Quality of Beach Data","quabch","A","?" +20577,"Re-entered Date","datren","A","?" +20578,"Re-suspended Date","datres","A","?" +20579,"Reverberation","revebn","E","?" +20580,"Safety Zone","N/A","N/A","?" +20581,"Sample Retained","samret","S","?" +20582,"Seabed Coverage","sbdcov","I","?" +20583,"Ships Speed","shpspd","F","?" +20584,"Sonar Frequency","snrfrq","E","?" +20585,"Sonar Range Scale","snrrsc","F","?" +20586,"Sonar Reflectivity","snrflc","E","?" +20587,"Sonar Signal Strength","sonsig","E","?" +20588,"Sound Velocity","sndvel","F","?" +20589,"Sounding Datum","soudat","E","?" +20590,"Spudded Date","datspd","A","?" +20592,"Steepest Face Orientation","stfotn","F","?" +20593,"Strength According to Richter Scale","ricsca","I","?" +20594,"Strength of Magnetic Anomaly","magany","E","?" +20595,"Suitability for ACV Use","stbacv","E","?" +20596,"Surf Height","srfhgt","F","?" +20597,"Surf Zone","srfzne","I","?" +20598,"Survey Date and Time","surdat","A","?" +20599,"Suspension Date","datsus","A","?" +20600,"Swell Height","swlhgt","F","?" +20601,"Tidal Range","tdlrng","F","?" +20602,"Time of Year","timeyr","L","?" +20603,"Tonnage","tonage","I","?" +20604,"Towed Body Depth","twdbdp","F","?" +20605,"Type of military activity","milact","L","?" +20606,"Type of Tonnage","typton","E","?" +20607,"Type of Wreck","typewk","E","?" +20608,"Underwater Reference Mark","unwrfm","E","?" +20609,"Unique ID from a Navigational Product","N/A","N/A","?" +20610,"Water Clarity","watclr","F","?" +20611,"Wavelength","wavlen","F","?" +20612,"Weight Bearing Capability","wbrcap","I","?" +20613,"Width (left)","lftwid","F","?" +20614,"Width (right)","rgtwid","F","?" +20615,"Contour Type","hypcat","E","?" +20616,"Sounding Velocity","souvel","E","?" +20617,"Access Restriction","accres","S","?" +20618,"Approach","apprch","S","?" +20619,"Category of Beach","catbch","E","?" +20620,"Clearance Percentage","clperc","I","?" +20621,"Communications","commns","L","?" +20622,"Confidence Level","conlev","F","?" +20624,"Exit Description","extdes","S","?" +20625,"Industry","indtry","S","?" +20626,"Landing Conditions","lndcon","S","?" +20627,"Leisure Activity","lsract","S","?" +20628,"Logistics","logtcs","L","?" +20629,"Manoeuvring","manvrg","S","?" +20630,"Mine Threat Density","mntden","I","?" +20631,"Multiple Contacts","mulcon","I","?" +20632,"Navigational Description","navdes","S","?" +20633,"Navigational Difficulty","navdif","E","?" +20634,"Number of Remaining Mines","numrmn","I","?" +20635,"Pier Contact Details","pierod","S","?" +20636,"Pier Description","pierdn","S","?" +20637,"Prairies Density","prsden","I","?" +20638,"Probability for Remaining Mines","prbrmn","F","?" +20639,"Remaining Mines Likely, Maximum Number","rmnlmn","I","?" +20640,"Self Protection (Air)","sfptna","E","?" +20641,"Self Protection (Near Defence)","sptnnd","E","?" +20642,"Self Protection (Surface)","sfptns","E","?" +20643,"Sensor Coverage","sencov","S","?" +20644,"Simple Initial Threat","sminth","F","?" +20645,"Target Reference Weight","tgrfwt","E","?" +20646,"Tidal Type","tdltyp","E","?" +20647,"Type of Resource Location","typres","E","?" +20648,"Undetectable Mines Ratio","undmnr","F","?" +20649,"Undetectable Mines Ratio with Burial","umnrwb","F","?" +20650,"Undetectable Mines Ratio without Burial","umrwob","F","?" +20651,"Weapon Coverage","wpncov","S","?" +20652,"On Sonar","onsonr","E","?" +20653,"HF Bottom Loss","hfbmls","F","?" +20654,"LF Bottom Loss","lfbmls","F","?" +20655,"Detection Probability","dtprob","F","?" +20656,"Disposal Probability","dsprob","F","?" +20657,"Classification Probability","clprob","F","?" +20658,"Characteristic Detection Width (A)","cswidt","I","?" +20659,"Characteristic Detection Probability (B)","csprob","F","?" +20660,"Zone Colour","znecol","E","?" +20661,"Reverberation Frequency","revfqy","F","?" +20662,"Reverberation Grazing Angle","revgan","F","?" +20663,"International Defence Organisation (IDO) status","secido","E","?" +20664,"Protective Marking","secpmk","E","?" +20665,"Owner Authority","secown","S","?" +20666,"Caveat ","seccvt","S","?" +20667,"Species","spcies","S","?" +20668,"Swept date","swpdat","A","?" +20669,"Runway length","rwylen","I","?" +20670,"Active period","actper","S","?" +20671,"Maximum altitude","maxalt","I","?" +20672,"Minimum altitude","minalt","I","?" +20673,"Maximum Flight Level","maxftl","I","?" +20674,"Minimum Flight Level","minftl","I","?" +20675,"Bottom Vertical Safety Separation","bverss","I","?" +20676,"Minimum Safe Depth","mindep","I","?" +20677,"Interpolated line characteristic","linech","E","?" +20678,"Identification","identy","S","?" +20679,"Route Classification","rclass","E","?" +20680,"Population","popltn","I","?" +20681,"Surface Threat","surtht","E","?" +20682,"Heading-Up Bearing","upbear","F","?" +20683,"Heading-Down Bearing","dnbear","F","?" +20684,"Ice Concentration","icencn","I","?" +20685,"Danger height","dgrhgt","I","?" +20686,"Depth Restriction","depres","S","?" +20687,"Area Category","arecat","E","?" +20688,"Existence of Restricted Area","exzres","E","?" +20689,"Target Strength","tarstg","I","?" +20690,"Qualification of Radar Coverage","quarad","I","?" +20691,"Contact Details","condet","S","?" +20692,"Limit of Anchors and Chains","limanc","F","?" +20693,"CCM Index","ccmidx","I","?" +20694,"Military Load Classification","mlclas","E","?" +20695,"MGS Type","mgstyp","E","?" +20696,"Ice Attribute Concentration Total","iceact","E","?" +20697,"Ice Stage of Development","icesod","E","?" +20698,"Ice Advisory Code","iceadc","S","?" +20699,"Number of Icebergs in Area","icebnm","I","?" +20700,"Ice Line Category","icelnc","E","?" +20701,"Ice Polynya Type","icepty","E","?" +20702,"Ice Polynya Status","icepst","E","?" +20703,"Ice Lead Type","icelty","E","?" +20704,"Ice Lead Status","icelst","E","?" +20705,"Iceberg Size","icebsz","E","?" +20706,"Iceberg Shape","icebsh","E","?" +20707,"Icedrift or Iceberg Direction","icebdr","E","?" +20708,"Icedrift or Iceberg Speed","icebsp","F","?" +20709,"Maximum Ice Thickness","icemax","F","?" +20710,"Minimum Ice Thickness","icemin","F","?" +20711,"Ice Ridge Development","icerdv","E","?" +20712,"Land Ice","icelnd","E","?" +20713,"Sea Direction","seadir","E","?" +20714,"Traffic density","traden","S","?" +20715,"Type of shipping","typshp","L","?" +20716,"Ice Coverage Type","icecvt","E","?" +20718,"Status of Small Bottom Object","staobj","L","?" +20719,"ICAO code","icaocd","S","?" +20720,"textual description","txtdes","S","?" +20721,"Object Reference Number","objtrn","S","?" +20722,"Object Shape","objshp","S","?" +22484,"Category of completeness","catcnf","E","?" +22485,"Error Ellipse","errell","A","?" +22486,"Object classes","N/A","N/A","?" +22487,"Security classification","N/A","N/A","?" +22488,"Vertical Datum Shift Parameter","vershf","F","?" +22489,"Absolute Vertical Accuracy","elvacc","F","?" +22490,"Reflection Coefficient","reflco","F","?" +22491,"Copyright statement","cpyrit","S","?" +0,"###40000 comes from past s57attributes_iw.csv (Inland Waterways)",###,S,F +40000,Update message,updmsg,S,F diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv new file mode 100644 index 00000000..e71249f3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57expectedinput.csv @@ -0,0 +1,1008 @@ +"Code","ID","Meaning" +2,1,"stake, pole, perch, post" +2,2,whity +2,3,beacon tower +2,4,lattice beacon +2,5,pile beacon +2,6,cairn +2,7,buoyant beacon +3,5,high-rise building +3,6,pyramid +3,7,cylindrical +3,8,spherical +3,9,cubic +4,1,"conical (nun, ogival)" +4,2,can (cylindrical) +4,3,spherical +4,4,pillar +4,5,spar (spindle) +4,6,barrel (tun) +4,7,super-buoy +4,8,ice buoy +7,1,military aeroplane airport +7,2,civil aeroplane airport +7,3,military heliport +7,4,civil heliport +7,5,glider airfield +7,6,small planes airfield +7,8,emergency airfield +8,1,unrestricted anchorage +8,2,deep water anchorage +8,3,tanker anchorage +8,4,explosives anchorage +8,5,quarantine anchorage +8,6,sea-plane anchorage +8,7,small craft anchorage +8,8,small craft mooring area +8,9,anchorage for periods up to 24 hours +9,1,fixed bridge +9,2,opening bridge +9,3,swing bridge +9,4,lifting bridge +9,5,bascule bridge +9,6,pontoon bridge +9,7,draw bridge +9,8,transporter bridge +9,9,footbridge +9,10,viaduct +9,11,aqueduct +9,12,suspension bridge +10,1,urban area +10,2,settlement +10,3,village +10,4,town +10,5,city +10,6,holiday village +11,1,power line +11,3,transmission line +11,4,telephone +11,5,telegraph +11,6,mooring cable/chain +12,1,transportation +12,2,drainage +12,3,irrigation +13,1,north cardinal mark +13,2,east cardinal mark +13,3,south cardinal mark +13,4,west cardinal mark +14,1,custom +15,1,steep coast +15,2,flat coast +15,3,sandy shore +15,4,stony shore +15,5,shingly shore +15,6,glacier (seaward end) +15,7,mangrove +15,8,marshy shore +15,9,coral reef +15,10,ice coast +16,1,triangulation point +16,2,observation spot +16,3,fixed point +16,4,bench-mark +16,5,boundary mark +16,6,"horizontal control, main station" +16,7,"horizontal control, secondary station" +17,1,aerial cableway (telepheric) +17,2,belt conveyor +18,1,coverage available +18,2,no coverage available +19,2,container crane/gantry +19,3,sheerlegs +19,4,travelling crane +19,5,A-frame +20,1,weir +20,2,dam +20,3,flood barrage +21,1,distance mark not physically installed +21,2,"visible mark, pole" +21,3,"visible mark, board" +21,4,"visible mark, unknown shape" +22,1,tidal +22,2,non-tidal (wet dock) +23,2,chemical waste dumping ground +23,3,nuclear waste dumping ground +23,4,explosives dumping ground +23,5,spoil ground +23,6,vessel dumping ground +24,1,fence +24,3,hedge +24,4,wall +25,1,'free-moving' ferry +25,2,cable ferry +25,3,ice ferry +26,1,fishing stake +26,2,fish trap +26,3,fish weir +26,4,tunny net +27,1,explosive +27,2,diaphone +27,3,siren +27,4,nautophone +27,5,reed +27,6,tyfon +27,7,bell +27,8,whistle +27,9,gong +27,10,horn +28,1,castle +28,2,fort +28,3,battery +28,4,blockhouse +28,5,Martello tower +29,2,flood barrage gate +29,3,caisson +29,4,lock gate +29,5,dyke gate +30,1,RoRo-terminal +30,3,ferry terminal +30,4,fishing harbour +30,5,yacht harbour/marina +30,6,naval base +30,7,tanker terminal +30,8,passenger terminal +30,9,shipyard +30,10,container terminal +30,11,bulk terminal +31,1,floating restaurant +31,2,historic ship +31,3,museum +31,4,accomodation +31,5,floating breakwater +32,1,fast ice +32,5,glacier +32,8,polar ice +33,1,catenary anchor leg mooring (CALM) +33,2,single buoy mooring (SBM or SPM) +34,1,fen +34,2,marsh +34,3,moor/bog +34,4,heathland +34,5,mountain range +34,6,lowlands +34,7,canyon lands +34,8,paddy field +34,9,agricultural land +34,10,savanna/grassland +34,11,parkland +34,12,swamp +34,13,landslide +34,14,lava flow +34,15,salt pan +34,16,moraine +34,17,crater +34,18,cave +34,19,rock column or pinnacle +35,1,cairn +35,2,cemetery +35,3,chimney +35,4,dish aerial +35,5,flagstaff (flagpole) +35,6,flare stack +35,7,mast +35,8,windsock +35,9,monument +35,10,column (pillar) +35,11,memorial plaque +35,12,obelisk +35,13,statue +35,14,cross +35,15,dome +35,16,radar scanner +35,17,tower +35,18,windmill +35,19,windmotor +35,20,spire/minaret +36,1,port-hand lateral mark +36,2,starboard-hand lateral mark +36,3,preferred channel to starboard lateral mark +36,4,preferred channel to port lateral mark +37,1,directional function +37,4,leading light +37,5,aero light +37,6,air obstruction light +37,7,fog detector light +37,8,flood light +37,9,strip light +37,10,subsidiary light +37,11,spotlight +37,12,front +37,13,rear +37,14,lower +37,15,upper +37,16,moiré effect +37,17,emergency +37,18,bearing light +37,19,horizontally disposed +37,20,vertically disposed +38,1,crustaceans +38,2,oyster/mussels +38,3,fish +38,4,seaweed +39,2,torpedo exercise area +39,3,submarine exercise area +39,4,firing danger area +39,5,mine-laying practice area +39,6,small arms firing range +40,1,dolphin +40,2,deviation dolphin +40,3,bollard +40,4,tie-up wall +40,5,post or pile +40,6,chain/wire/cable +40,7,mooring buoy +41,1,clearing line +41,2,transit line +41,3,leading line bearing a recommended track +42,1,snag / stump +42,2,wellhead +42,3,diffuser +42,4,crib +42,5,fish haven +42,6,foul area +42,7,foul ground +42,8,ice boom +42,9,ground tackle +43,1,oil derrick / rig +43,2,production platform +43,3,observation / research platform +43,4,articulated loading platform (ALP) +43,5,single anchor leg mooring (SALM) +43,6,mooring tower +43,7,artificial island +43,8,"floating production, storage and off-loading vessel (FPSO)" +43,9,accomodation platform +43,10,"navigation, communication and control buoy (NCCB)" +44,1,oil retention (high pressure pipe) +44,2,floating oil barrier +45,1,stake +45,3,post +45,4,tripodal +46,1,boarding by pilot-cruising vessel +46,2,boarding by helicopter +46,3,pilot comes out from shore +47,2,outfall pipe +47,3,intake pipe +47,4,sewer +47,5,bubbler system +47,6,supply pipe +48,1,quarry +48,2,mine +48,3,stockpile +48,4,power station area +48,5,refinery area +48,6,timber yard +48,7,factory area +48,8,tank farm +48,9,wind farm +49,1,power transmission pylon/pole +49,2,telephone/telegraph pylon/pole +49,3,aerial cableway/sky pylon +49,4,bridge pylon/tower +49,5,bridge pier +50,1,data quality A +50,2,data quality B +50,3,data quality C +50,4,data quality D +50,5,data quality E +50,6,quality not evaluated +51,1,radar surveillance station +51,2,coast radar station +52,1,"ramark, radar beacon transmitting continuously" +52,2,"racon, radar transponder beacon" +52,3,leading racon/radar transponder beacon +53,1,circular (non-directional) marine or aero-marine radiobeacon +53,2,directional radiobeacon +53,3,rotating-pattern radiobeacon +53,4,Consol beacon +53,5,radio direction-finding station +53,6,coast radio station providing QTG service +53,7,aeronautical radiobeacon +53,8,Decca +53,9,Loran C +53,10,Differential GPS +53,11,Toran +53,12,Omega +53,13,Syledis +53,14,Chaika (Chayka) +54,1,based on a system of fixed marks +54,2,not based on a system of fixed marks +55,1,rescue station with lifeboat +55,2,rescue station with rocket +55,4,refuge for shipwrecked mariners +55,5,refuge for intertidal area walkers +55,6,lifeboat lying at a mooring +56,1,offshore safety zone +56,4,nature reserve +56,5,bird sanctuary +56,6,game preserve +56,7,seal sanctuary +56,8,degaussing range +56,9,military area +56,10,historic wreck area +56,12,navigational aid safety zone +56,14,minefield +56,18,swimming area +56,19,waiting area +56,20,research area +56,21,dredging area +56,22,fish sanctuary +56,23,ecological reserve +56,24,no wake area +56,25,swinging area +57,1,motorway +57,2,major road +57,3,minor road +57,4,track / path +57,5,major street +57,6,minor street +57,7,crossing +58,1,aeroplane +58,2,helicopter landing pad +59,2,gat +59,3,bank +59,4,deep +59,5,bay +59,6,trench +59,7,basin +59,8,mud flats +59,9,reef +59,10,ledge +59,11,canyon +59,12,narrows +59,13,shoal +59,14,knoll +59,15,ridge +59,16,seamount +59,17,pinnacle +59,18,abyssal plain +59,19,plateau +59,20,spur +59,21,shelf +59,22,trough +59,23,saddle +59,24,abyssal hills +59,25,apron +59,26,archipelagic apron +59,27,borderland +59,28,continental margin +59,29,continental rise +59,30,escarpment +59,31,fan +59,32,fracture zone +59,33,gap +59,34,guyot +59,35,hill +59,36,hole +59,37,levee +59,38,median valley +59,39,moat +59,40,mountains +59,41,peak +59,42,province +59,43,rise +59,44,seachannel +59,45,seamount chain +59,46,shelf edge +59,47,sill +59,48,slope +59,49,terrace +59,50,valley +59,51,canal +59,52,lake +59,53,river +60,1,breakwater +60,2,groyne (groin) +60,3,mole +60,4,pier ( jetty) +60,5,promenadepier +60,6,wharf (quay) +60,7,training wall +60,8,rip rap +60,9,revetment +60,10,sea wall +60,11,landing steps +60,12,ramp +60,13,slipway +60,14,fender +60,15,solid face wharf +60,16,open face wharf +61,1,port control +61,2,port entry and departure +61,3,International Port Traffic +61,4,berthing +61,5,dock +61,6,lock +61,7,flood barrage +61,8,bridge passage +61,9,dredging +62,1,danger +62,2,maritime obstruction +62,3,cable +62,4,military practice +62,5,distress +62,6,weather +62,7,storm +62,8,ice +62,9,time +62,10,tide +62,11,tidal stream +62,12,tide gauge +62,13,tide scale +62,14,diving +63,1,silo in general +63,2,tank in general +63,3,grain elevator +63,4,water tower +64,1,cutting +64,2,embankment +64,3,dune +64,4,hill +64,5,pingo +64,6,cliff +64,7,scree +65,1,visitor`s berth +65,2,nautical club +65,3,boat hoist +65,4,sailmaker +65,5,boatyard +65,6,public inn +65,7,restaurant +65,8,chandler +65,9,provisions +65,10,doctor +65,11,pharmacy +65,12,water tap +65,13,fuel station +65,14,electricity +65,15,bottle gas +65,16,showers +65,17,launderette +65,18,public toilets +65,19,post box +65,20,public telephone +65,21,refuse bin +65,22,car park +65,23,parking for boats and trailers +65,24,caravan site +65,25,camping site +65,26,sewerage pump-out station +65,27,emergency telephone +65,28,landing / launching place for boats +65,29,visitors mooring +65,30,scrubbing berth +65,31,picnic area +66,1,firing danger area mark +66,2,target mark +66,3,marker ship mark +66,4,degaussing range mark +66,5,barge mark +66,6,cable mark +66,7,spoil ground mark +66,8,outfall mark +66,9,ODAS (Ocean-Data-Acquisition-System) +66,10,recording mark +66,11,seaplane anchorage mark +66,12,recreation zone mark +66,13,private mark +66,14,mooring mark +66,15,LANBY (Large Automatic Navigational Buoy) +66,16,leading mark +66,17,measured distance mark +66,18,notice mark +66,19,TSS mark (Traffic Separation Scheme) +66,20,anchoring prohibited mark +66,21,berthing prohibited mark +66,22,overtaking prohibited mark +66,23,two-way traffic prohibited mark +66,24,'reduced wake' mark +66,25,speed limit mark +66,26,stop mark +66,27,general warning mark +66,28,'sound ship's siren' mark +66,29,restricted vertical clearence mark +66,30,maximum vessel's draught mark +66,31,restricted horizontal clearance mark +66,32,strong current warning mark +66,33,berthing permitted mark +66,34,overhead power cable mark +66,35,'channel edge gradient' mark +66,36,telephone mark +66,37,ferry crossing mark +66,39,pipline mark +66,40,anchorage mark +66,41,clearing mark +66,42,control mark +66,43,diving mark +66,44,refuge beacon +66,45,foul ground mark +66,46,yachting mark +66,47,heliport mark +66,48,GPS mark +66,49,seaplane landing mark +66,50,entry prohibited mark +66,51,work in progress mark +66,52,mark with unknown purpose +67,1,IMO - adopted +67,2,not IMO - adopted +68,1,grassland +68,3,bush +68,4,deciduous wood +68,5,coniferous wood +68,6,wood in general (inc mixed wood) +68,7,mangroves +68,10,mixed crops +68,11,reed +68,12,moos +68,13,tree in general +68,14,evergreen tree +68,15,coniferous tree +68,16,palm tree +68,17,nipa palm tree +68,18,casuarina tree +68,19,eucalypt tree +68,20,deciduous tree +68,21,mangrove tree +68,22,filao tree +69,1,breakers +69,2,eddies +69,3,overfalls +69,4,tide rips +69,5,bombora +70,1,kelp +70,2,sea weed +70,3,sea grass +70,4,saragasso +71,1,non-dangerous wreck +71,2,dangerous wreck +71,3,distributed remains of wreck +71,4,wreck showing mast/masts +71,5,wreck showing any portion of hull or superstructure +72,1,zone of confidence A1 +72,2,zone of confidence A2 +72,3,zone of confidence B +72,4,zone of confidence C +72,5,zone of confidence D +72,6,zone of confidence U (data not assessed) +73,1,expanded/condensed +73,2,standard +75,1,white +75,2,black +75,3,red +75,4,green +75,5,blue +75,6,yellow +75,7,grey +75,8,brown +75,9,amber +75,10,violet +75,11,orange +75,12,magenta +75,13,pink +76,1,horizontal stripes +76,2,vertical stripes +76,3,diagonal stripes +76,4,squared +76,5,stripes (direction unknown) +76,6,border stripes +81,1,under construction +81,2,ruined +81,3,under reclamation +81,4,wingless +81,5,planned construction +82,1,radar conspicuous +82,2,not radar conspicuous +82,3,radar conspicuous (has radar reflector) +83,1,visual conspicuous +83,2,not visual conspicuous +89,1,metres +89,2,fathoms and feet +89,3,feet +89,4,fathoms and fractions +92,1,light shown without change of character +92,2,daytime light +92,3,fog light +92,4,night light +93,1,within the range of depth of the surrounding depth area +93,2,shoaler than range of depth of the surrounding depth area +93,3,deeper than range of depth of the surrounding depth area +94,2,harbour-master's office +94,3,custom office +94,4,health office +94,5,hospital +94,6,post office +94,7,hotel +94,8,railway station +94,9,police station +94,10,water-police station +94,11,pilot office +94,12,pilot lookout +94,13,bank office +94,14,headquarters for district control +94,15,transit shed/warehouse +94,16,factory +94,17,power station +94,18,administrative +94,19,educational facility +94,20,church +94,21,chapel +94,22,temple +94,23,pagoda +94,24,shinto shrine +94,25,buddhist temple +94,26,mosque +94,27,marabout +94,28,lookout +94,29,communication +94,30,television +94,31,radio +94,32,radar +94,33,light support +94,34,microwave +94,35,cooling +94,36,observation +94,37,timeball +94,38,clock +94,39,control +94,40,airship mooring +94,41,stadium +94,42,bus station +96,1,metres +96,2,feet +103,1,international +103,2,national +103,3,national sub-division +104,1,centre justified +104,2,right justified +104,3,left justified +105,1,bottom justified +105,2,centre justified +105,3,top justified +107,1,fixed +107,2,flashing +107,3,long-flashing +107,4,quick-flashing +107,5,very quick-flashing +107,6,ultra quick-flashing +107,7,isophased +107,8,occulting +107,9,interrupted quick-flashing +107,10,interrupted very quick-flashing +107,11,interrupted ultra quick-flashing +107,12,morse +107,13,fixed / flash +107,14,flash / long-flash +107,15,occulting / flash +107,16,fixed / long-flash +107,17,occulting alternating +107,18,long-flash alternating +107,19,flash alternating +107,20,group alternating +107,25,quick-flash plus long-flash +107,26,very quick-flash plus long-flash +107,27,ultra quick-flash plus long-flash +107,28,alternating +107,29,fixed and alternating flashing +108,1,high intensity +108,2,low intensity +108,3,faint +108,4,intensified +108,5,unintensified +108,6,visibility deliberately restricted +108,7,obscured +108,8,partially obscured +109,1,IALA A +109,2,IALA B +109,9,no system +109,10,other sytem +112,1,masonry +112,2,concreted +112,3,loose boulders +112,4,hard surfaced +112,5,unsurfaced +112,6,wooden +112,7,metal +112,8,glass reinforced plastic (GRP) +112,9,painted +113,1,mud +113,2,clay +113,3,silt +113,4,sand +113,5,stone +113,6,gravel +113,7,pebbles +113,8,cobbles +113,9,rock +113,11,lava +113,14,coral +113,17,shells +113,18,boulder +114,1,fine +114,2,medium +114,3,coarse +114,4,broken +114,5,sticky +114,6,soft +114,7,stiff +114,8,volcanic +114,9,calcareous +114,10,hard +123,1,oil +123,2,gas +123,3,water +123,4,stone +123,5,coal +123,6,ore +123,7,chemicals +123,8,drinking water +123,9,milk +123,10,bauxite +123,11,coke +123,12,iron ingots +123,13,salt +123,14,sand +123,15,timber +123,16,sawdust / wood chips +123,17,scrap metal +123,18,liquified natural gas (LNG) +123,19,liquified petroleum gas (LPG) +123,20,wine +123,21,cement +123,22,grain +125,1,depth known +125,2,depth unknown +125,3,doubtful sounding +125,4,unreliable sounding +125,5,no bottom found at value shown +125,6,least depth known +125,7,"least depth unknown, safe clearance at value shown" +125,8,value reported (not surveyed) +125,9,value reported (not confirmed) +125,10,maintained depth +125,11,not reguraly maintained +131,1,anchoring prohibited +131,2,anchoring restricted +131,3,fishing prohibited +131,4,fishing restricted +131,5,trawling prohibited +131,6,trawling restricted +131,7,entry prohibited +131,8,entry restricted +131,9,dredging prohibited +131,10,dredging restricted +131,11,diving prohibited +131,12,diving restricted +131,13,no wake +131,14,area to be avoided +131,15,construction prohibited +140,1,automatically +140,2,by wave action +140,3,by hand +140,4,by wind +149,1,permanent +149,2,occasional +149,3,recommended +149,4,disused +149,5,periodically/intermittent +149,6,reserved +149,7,temporary +149,8,private +149,9,mandatory +149,11,extinguished +149,12,illuminated +149,13,historic +149,14,public +149,15,synchronized +149,16,watched +149,17,un-watched +149,18,existence doubtful +153,1,reconnaissance/sketch survey +153,2,controlled survey +153,4,examintion survey +153,5,passage survey +153,6,remotely sensed +156,1,found by echo-sounder +156,2,found by side scan sonar +156,3,found by multi-beam +156,4,found by diver +156,5,found by lead-line +156,6,swept by wire-drag +156,7,found by laser +156,8,swept by vertical acoustic system +156,9,found by electromagnetic sensor +156,10,photogrammetry +156,11,satelite imagery +156,12,found by levelling +156,13,swept by side-scan sonar +156,14,computer generated +161,1,better than 0.1m and 10 minutes +161,2,worse than 0.1m or 10 minutes +163,1,simplified harmonic method of tidal prediction +163,2,full harmonic method of tidal prediction +163,3,height and time difference non-harmonic method +170,1,darkest blue +170,2,medium blue +170,3,lightest blue +171,1,"cone, point up" +171,2,"cone, point down" +171,3,sphere +171,4,2 sphere +171,5,cylinder (can) +171,6,board +171,7,x-shape (St. Andrew's cross) +171,8,upright cross (St. George cross) +171,9,"cube, point up" +171,10,"2 cones, point to point" +171,11,"2 cones, base to base" +171,12,rhombus (diamond) +171,13,2 cones (points upward) +171,14,2 cones (points downward) +171,15,"besom, point up (broom or perch)" +171,16,"besom, point down (broom or perch)" +171,17,flag +171,18,sphere over rhombus +171,19,square +171,20,"rectangle, horizontal" +171,21,"rectangle, vertical" +171,22,"trapezium, up" +171,23,"trapezium, down" +171,24,"triangle, point up" +171,25,"triangle, point down" +171,26,circle +171,27,two upright crosses (one over the other) +171,28,T-shape +171,29,triangle pointing up over a circle +171,30,upright cross over a circle +171,31,rhombus over a circle +171,32,circle over a triangle pointing up +171,33,other shape (see INFORM) +172,1,inbound +172,2,outbound +172,3,one-way +172,4,two-way +185,1,Mean low water springs +185,2,Mean lower low water springs +185,3,Mean sea level +185,4,Lowest low water +185,5,Mean low water +185,6,Lowest low water springs +185,7,Approximate mean low water springs +185,8,Indian spring low water +185,9,Low water springs +185,10,Approximate lowest astronomical tide +185,11,Nearly lowest low water +185,12,Mean lower low water +185,13,Low water +185,14,Approximate mean low water +185,15,Approximate mean lower low water +185,16,Mean high water +185,17,Mean high water springs +185,18,High water +185,19,Approximate mean sea level +185,20,High water springs +185,21,Mean higher high water +185,22,Equinoctial spring low water +185,23,Lowest astronomical tide +185,24,Local datum +185,25,International Great Lakes Datum 1985 +185,26,Mean water level +185,27,Lower low water large tide +185,28,Higher high water lage tide +185,29,Nearly highest high water +187,1,partly submerged at high water +187,2,always dry +187,3,always under water/submerged +187,4,covers and uncovers +187,5,awash +187,6,subject to inundation or flooding +400,1,WGS 72 +400,2,WGS 84 +400,3,European 1950 +400,4,Potsdam Datum +400,5,Adindan +400,6,Afgooye +400,7,Ain el Abd 1970 +400,8,Anna 1 Astro 1965 +400,9,Antigua Island Astro 1943 +400,10,Arc 1950 +400,11,Arc 1960 +400,12,Ascension Island 1958 +400,13,"Astro beacon \"E\" 1945" +400,14,Astro DOS 71/4 +400,15,Astro Tern Island (FRIG) 1961 +400,16,Astronimical Station 1952 +400,17,Australian Geodetic 1966 +400,18,Australian Geodetic 1984 +400,19,Ayabelle Lighthouse +400,20,Bellevue (IGN) +400,21,Bermuda 1957 +400,22,Bissau +400,23,Bogota Observatory +400,24,Bukit Rimpah +400,25,Camp Area Astro +400,26,Campo Inchauspe 1969 +400,27,Canton Astro 1966 +400,28,Cape +400,29,Cape Canaveral +400,30,Carthage +400,31,Chatam Island Astro 1971 +400,32,Chua Astro +400,33,Corrego Alegre +400,34,Dabola +400,35,Djakarta (Batavia) +400,36,DOS 1968 +400,37,Easter Island 1967 +400,38,European 1979 +400,39,Fort Thomas 1955 +400,40,Gan 1970 +400,41,Geodetic Datum 1949 +400,42,Graciosa Base SW 1948 +400,43,Guam 1963 +400,44,Ganung Segara +400,45,GUX 1 Astro +400,46,Herat North +400,47,Hjorsey 1955 +400,48,Hong Kong 1963 +400,49,Hu-Tzu-Shan +400,50,Indian +400,51,Indian 1954 +400,52,Indian 1975 +400,53,Ireland 1965 +400,54,ISTS 061 Astro 1968 +400,55,ISTS 073 Astro 1969 +400,56,Johnston Island 1961 +400,57,Kandawala +400,58,Kerguelen Island 1949 +400,59,Kertau 1948 +400,60,Kusaie Astro 1951 +400,61, +400,62, +400,63, +400,64, +400,65, +400,66, +400,67, +400,68, +400,69, +400,70, +400,71, +400,72, +400,73, +400,74, +400,75, +400,76, +400,77, +400,78, +400,79, +400,80, +400,81, +400,82, +400,83, +400,84, +400,85, +400,86, +400,87, +400,88, +400,89, +400,90, +400,91, +400,92, +400,93, +400,94, +400,95, +400,96, +400,97, +400,98, +400,99,South Asia +400,100,Tananarive Observatory 1925 +402,1,surveyed +402,2,unsurveyed +402,3,inadequately surveyed +402,4,approximated +402,5,position doubtful +402,6,unreliable +402,7,reported (not surveyed) +402,8,reported (not confirmed) +402,9,estimated +402,10,precisely known +402,11,calculated diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv new file mode 100644 index 00000000..ae3628fc --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/s57objectclasses.csv @@ -0,0 +1,287 @@ +"Code","ObjectClass","Acronym","Attribute_A","Attribute_B","Attribute_C","Class","Primitives" +1,Administration area (Named),ADMARE,JRSDTN;NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +2,Airport / airfield,AIRARE,CATAIR;CONDTN;CONVIS;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +3,Anchor berth,ACHBRT,CATACH;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RADIUS;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +4,Anchorage area,ACHARE,CATACH;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +5,"Beacon, cardinal",BCNCAR,BCNSHP;CATCAM;COLOUR;COLPAT;CONDTN;CONVIS;CONRAD;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +6,"Beacon, isolated danger",BCNISD,BCNSHP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +7,"Beacon, lateral",BCNLAT,BCNSHP;CATLAM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +8,"Beacon, safe water",BCNSAW,BCNSHP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +9,"Beacon, special purpose/general",BCNSPP,BCNSHP;CATSPM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +10,Berth,BERTHS,DATEND;DATSTA;DRVAL1;NOBJNM;OBJNAM;PEREND;PERSTA;QUASOU;SOUACC;STATUS;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +11,Bridge,BRIDGE,CATBRG;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORCLR;NATCON;NOBJNM;OBJNAM;VERACC;VERCCL;VERCLR;VERCOP;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +12,"Building, single",BUISGL,BUISHP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;FUNCTN;HEIGHT;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +13,Built-up area,BUAARE,CATBUA;CONDTN;CONRAD;CONVIS;HEIGHT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +14,"Buoy, cardinal",BOYCAR,BOYSHP;CATCAM;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +15,"Buoy, installation",BOYINB,BOYSHP;CATINB;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;PRODCT;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +16,"Buoy, isolated danger",BOYISD,BOYSHP;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +17,"Buoy, lateral",BOYLAT,BOYSHP;CATLAM;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +18,"Buoy, safe water",BOYSAW,BOYSHP;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +19,"Buoy, special purpose/general",BOYSPP,BOYSHP;CATSPM;COLOUR;COLPAT;CONRAD;DATEND;DATSTA;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +20,Cable area,CBLARE,CATCBL;DATEND;DATSTA;NOBJNM;OBJNAM;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +21,"Cable, overhead",CBLOHD,CATCBL;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ICEFAC;NOBJNM;OBJNAM;STATUS;VERACC;VERCLR;VERCSA;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +22,"Cable, submarine",CBLSUB,BURDEP;CATCBL;CONDTN;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;STATUS;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +23,Canal,CANALS,CATCAN;CONDTN;DATEND;DATSTA;HORACC;HORCLR;HORWID;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +24,Canal bank,CANBNK,CONDTN;DATEND;DATSTA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +25,Cargo transshipment area,CTSARE,DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +26,Causeway,CAUSWY,CONDTN;NATCON;NOBJNM;OBJNAM;STATUS;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +27,Caution area,CTNARE,DATEND;DATSTA;PEREND;PERSTA;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +28,Checkpoint,CHKPNT,CATCHP;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +29,Coastguard station,CGUSTA,DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +30,Coastline,COALNE,CATCOA;COLOUR;CONRAD;CONVIS;ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +31,Contiguous zone,CONZNE,DATEND;DATSTA;NATION;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +32,Continental shelf area,COSARE,NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +33,Control point,CTRPNT,CATCTR;DATEND;DATSTA;ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +34,Conveyor,CONVYR,CATCON;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;LIFCAP;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERCLR;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +35,Crane,CRANES,CATCRN;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;HEIGHT;LIFCAP;NOBJNM;OBJNAM;ORIENT;RADIUS;STATUS;VERACC;VERCLR;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +36,Current - non - gravitational,CURENT,CURVEL;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;,INFORM;NINFOM;SCAMAX;SCAMIN;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +37,Custom zone,CUSZNE,NATION;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +38,Dam,DAMCON,CATDAM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +39,Daymark,DAYMAR,CATSPM;COLOUR;COLPAT;DATEND;DATSTA;ELEVAT;HEIGHT;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;TOPSHP;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +40,Deep water route centerline,DWRTCL,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +41,Deep water route part,DWRTPT,DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;RESTRN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +42,Depth area,DEPARE,DRVAL1;DRVAL2;QUASOU;SOUACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +43,Depth contour,DEPCNT,VALDCO;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;hypcat;,G,Line; +44,Distance mark,DISMAR,CATDIS;DATEND;DATSTA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +45,Dock area,DOCARE,CATDOC;CONDTN;DATEND;DATSTA;HORACC;HORCLR;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +46,Dredged area,DRGARE,DRVAL1;DRVAL2;NOBJNM;OBJNAM;QUASOU;RESTRN;SOUACC;TECSOU;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +47,Dry dock,DRYDOC,CONDTN;HORACC;HORCLR;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;DRVAL1;QUASOU;SOUACC;VERDAT;,INFORM;NINFOM;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +48,Dumping ground,DMPGRD,CATDPG;NOBJNM;OBJNAM;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +49,Dyke,DYKCON,CONDTN;CONRAD;DATEND;DATSTA;HEIGHT;NATCON;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +50,Exclusive Economic Zone,EXEZNE,NATION;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +51,Fairway,FAIRWY,DATEND;DATSTA;DRVAL1;NOBJNM;OBJNAM;ORIENT;QUASOU;RESTRN;SOUACC;STATUS;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +52,Fence/wall,FNCLNE,CATFNC;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;HEIGHT;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +53,Ferry route,FERYRT,CATFRY;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +54,Fishery zone,FSHZNE,NATION;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +55,Fishing facility,FSHFAC,CATFIF;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +56,Fishing ground,FSHGRD,NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +57,Floating dock,FLODOC,COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;DRVAL1;HORACC;HORCLR;HORLEN;HORWID;LIFCAP;NOBJNM;OBJNAM;STATUS;VERACC;VERLEN;VERDAT;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +58,Fog signal,FOGSIG,CATFOG;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;SIGFRQ;SIGGEN;SIGGRP;SIGPER;SIGSEQ;STATUS;VALMXR;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +59,Fortified structure,FORSTC,CATFOR;CONDTN;CONRAD;CONVIS;HEIGHT;NATCON;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +60,Free port area,FRPARE,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +61,Gate,GATCON,CATGAT;CONDTN;DRVAL1;HORACC;HORCLR;NATCON;NOBJNM;OBJNAM;QUASOU;SOUACC;STATUS;VERACC;VERCLR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +62,Gridiron,GRIDRN,HORACC;HORLEN;HORWID;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +63,Harbour area (administrative),HRBARE,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +64,Harbour facility,HRBFAC,CATHAF;CONDTN;DATEND;DATSTA;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +65,Hulk,HULKES,CATHLK;COLOUR;COLPAT;CONRAD;CONVIS;HORACC;HORLEN;HORWID;NOBJNM;OBJNAM;VERACC;VERLEN;CONDTN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +66,Ice area,ICEARE,CATICE;CONVIS;ELEVAT;HEIGHT;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +67,Incineration area,ICNARE,NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +68,Inshore traffic zone,ISTZNE,CATTSS;DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +69,Lake,LAKARE,ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +70,Lake shore,LAKSHR,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +71,Land area,LNDARE,CONDTN;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +72,Land elevation,LNDELV,CONVIS;ELEVAT;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +73,Land region,LNDRGN,CATLND;NATQUA;NATSUR;NOBJNM;OBJNAM;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +74,Landmark,LNDMRK,CATLMK;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;FUNCTN;HEIGHT;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +75,Light,LIGHTS,CATLIT;COLOUR;DATEND;DATSTA;EXCLIT;HEIGHT;LITCHR;LITVIS;MARSYS;MLTYLT;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;SECTR1;SECTR2;SIGGRP;SIGPER;SIGSEQ;STATUS;VERACC;VALNMR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +76,Light float,LITFLT,COLOUR;COLPAT;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORLEN;HORWID;MARSYS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +77,Light vessel,LITVES,COLOUR;COLPAT;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORLEN;HORWID;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +78,Local magnetic anomaly,LOCMAG,NOBJNM;OBJNAM;VALLMA;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +79,Lock basin,LOKBSN,DATEND;DATSTA;HORACC;HORCLR;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +80,Log pond,LOGPON,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +81,Magnetic variation,MAGVAR,DATEND;DATSTA;RYRMGV;VALACM;VALMAG;,INFORM;NINFOM;SCAMAX;SCAMIN;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +82,Marine farm/culture,MARCUL,CATMFA;DATEND;DATSTA;EXPSOU;NOBJNM;OBJNAM;PEREND;PERSTA;QUASOU;RESTRN;SOUACC;STATUS;VALSOU;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +83,Military practice area,MIPARE,CATMPA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +84,Mooring/warping facility,MORFAC,BOYSHP;CATMOR;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +85,Navigation line,NAVLNE,CATNAV;DATEND;DATSTA;ORIENT;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +86,Obstruction,OBSTRN,CATOBS;CONDTN;EXPSOU;HEIGHT;NATCON;NATQUA;NOBJNM;OBJNAM;PRODCT;QUASOU;SOUACC;STATUS;TECSOU;VALSOU;VERACC;VERDAT;VERLEN;WATLEV;NATSUR;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +87,Offshore platform,OFSPLF,CATOFP;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +88,Offshore production area,OSPARE,CATPRA;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NOBJNM;OBJNAM;PRODCT;RESTRN;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +89,Oil barrier,OILBAR,CATOLB;CONDTN;DATEND;DATSTA;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +90,Pile,PILPNT,CATPLE;COLOUR;COLPAT;CONDTN;CONVIS;DATEND;DATSTA;HEIGHT;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +91,Pilot boarding place,PILBOP,CATPIL;COMCHA;DATEND;DATSTA;NOBJNM;NPLDST;OBJNAM;PEREND;PERSTA;PILDST;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +92,Pipeline area,PIPARE,CONDTN;DATEND;DATSTA;NOBJNM;OBJNAM;PRODCT;RESTRN;STATUS;CATPIP;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +93,"Pipeline, overhead",PIPOHD,CATPIP;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERCLR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +94,"Pipeline, submarine/on land",PIPSOL,BURDEP;CATPIP;CONDTN;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERLEN;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +95,Pontoon,PONTON,CONDTN;CONRAD;CONVIS;DATEND;DATSTA;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +96,Precautionary area,PRCARE,DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +97,Production / storage area,PRDARE,CATPRA;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ELEVAT;HEIGHT;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +98,Pylon/bridge support,PYLONS,CATPYL;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;NATCON;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +99,Radar line,RADLNE,NOBJNM;OBJNAM;ORIENT;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +100,Radar range,RADRNG,COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +101,Radar reflector,RADRFL,HEIGHT;STATUS;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +102,Radar station,RADSTA,CATRAS;DATEND;DATSTA;HEIGHT;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;VALMXR;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +103,Radar transponder beacon,RTPBCN,CATRTB;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RADWAL;SECTR1;SECTR2;SIGGRP;SIGSEQ;STATUS;VALMXR;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +104,Radio calling-in point,RDOCAL,COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;STATUS;TRAFIC;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +105,Radio station,RDOSTA,CALSGN;CATROS;COMCHA;DATEND;DATSTA;ESTRNG;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;SIGFRQ;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +106,Railway,RAILWY,CONDTN;HEIGHT;NOBJNM;OBJNAM;STATUS;VERACC;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +107,Rapids,RAPIDS,NOBJNM;OBJNAM;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +108,Recommended route centerline,RCRTCL,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +109,Recommended track,RECTRC,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +110,Recommended Traffic Lane Part,RCTLPT,DATEND;DATSTA;ORIENT;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +111,Rescue station,RSCSTA,CATRSC;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;SCAMAX;SCAMIN;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +112,Restricted area,RESARE,CATREA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +113,Retro-reflector,RETRFL,COLOUR;COLPAT;DATEND;DATSTA;HEIGHT;MARSYS;PEREND;PERSTA;STATUS;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +114,River,RIVERS,NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +115,River bank,RIVBNK,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +116,Road,ROADWY,CATROD;CONDTN;NATCON;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +117,Runway,RUNWAY,CATRUN;CONDTN;CONVIS;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +118,Sand waves,SNDWAV,VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +119,Sea area / named water area,SEAARE,CATSEA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +120,Sea-plane landing area,SPLARE,NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +121,Seabed area,SBDARE,COLOUR;NATQUA;NATSUR;WATLEV;OBJNAM;NOBJNM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +122,Shoreline Construction,SLCONS,CATSLC;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HEIGHT;HORACC;HORCLR;HORLEN;HORWID;NATCON;NOBJNM;OBJNAM;STATUS;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +123,"Signal station, traffic",SISTAT,CATSIT;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +124,"Signal station, warning",SISTAW,CATSIW;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +125,Silo / tank,SILTNK,BUISHP;CATSIL;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;ELEVAT;HEIGHT;NATCON;NOBJNM;OBJNAM;PRODCT;STATUS;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +126,Slope topline,SLOTOP,CATSLO;COLOUR;CONRAD;CONVIS;ELEVAT;NATCON;NATQUA;NATSUR;NOBJNM;OBJNAM;VERACC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +127,Sloping ground,SLOGRD,CATSLO;COLOUR;CONRAD;CONVIS;NATCON;NATQUA;NATSUR;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +128,Small craft facility,SMCFAC,CATSCF;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +129,Sounding,SOUNDG,EXPSOU;NOBJNM;OBJNAM;QUASOU;SOUACC;TECSOU;VERDAT;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +130,Spring,SPRING,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +131,Square,SQUARE,CONDTN;NATCON;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +132,Straight territorial sea baseline,STSLNE,NATION;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +133,Submarine transit lane,SUBTLN,NOBJNM;OBJNAM;RESTRN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +134,Swept Area,SWPARE,DRVAL1;QUASOU;SOUACC;TECSOU;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +135,Territorial sea area,TESARE,NATION;RESTRN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +136,Tidal stream - harmonic prediction,TS_PRH,NOBJNM;OBJNAM;T_MTOD;T_VAHC;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +137,Tidal stream - non-harmonic prediction,TS_PNH,NOBJNM;OBJNAM;T_MTOD;T_THDF;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +138,Tidal stream panel data,TS_PAD,NOBJNM;OBJNAM;TS_TSP;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +139,Tidal stream - time series,TS_TIS,NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;T_TINT;TS_TSV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +140,Tide - harmonic prediction,T_HMON,NOBJNM;OBJNAM;T_ACWL;T_MTOD;T_VAHC;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +141,Tide - non-harmonic prediction,T_NHMN,NOBJNM;OBJNAM;T_ACWL;T_MTOD;T_THDF;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +142,Tidal stream - time series,T_TIMS,NOBJNM;OBJNAM;T_HWLW;T_TINT;T_TSVL;TIMEND;TIMSTA;STATUS;T_ACWL;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +143,Tideway,TIDEWY,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area; +144,Top mark,TOPMAR,COLOUR;COLPAT;DATEND;DATSTA;HEIGHT;MARSYS;PEREND;PERSTA;STATUS;TOPSHP;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +145,Traffic Separation Line,TSELNE,CATTSS;DATEND;DATSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +146,Traffic Separation Scheme Boundary,TSSBND,CATTSS;DATEND;DATSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +147,Traffic Separation Scheme Crossing,TSSCRS,CATTSS;DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +148,Traffic Separation Scheme Lane part,TSSLPT,CATTSS;DATEND;DATSTA;ORIENT;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +149,Traffic Separation Scheme Roundabout,TSSRON,CATTSS;DATEND;DATSTA;RESTRN;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +150,Traffic Separation Zone,TSEZNE,CATTSS;DATEND;DATSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +151,Tunnel,TUNNEL,BURDEP;CONDTN;HORACC;HORCLR;NOBJNM;OBJNAM;STATUS;VERACC;VERCLR;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +152,Two-way route part,TWRTPT,CATTRK;DATEND;DATSTA;DRVAL1;DRVAL2;ORIENT;QUASOU;SOUACC;STATUS;TECSOU;TRAFIC;VERDAT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +153,Underwater rock / awash rock,UWTROC,EXPSOU;NATSUR;NATQUA;NOBJNM;OBJNAM;QUASOU;SOUACC;STATUS;TECSOU;VALSOU;VERDAT;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point; +154,Unsurveyed area,UNSARE,,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +155,Vegetation,VEGATN,CATVEG;CONVIS;ELEVAT;HEIGHT;NOBJNM;OBJNAM;VERACC;VERDAT;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +156,Water turbulence,WATTUR,CATWAT;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line;Area; +157,Waterfall,WATFAL,CONVIS;NOBJNM;OBJNAM;VERACC;VERLEN;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Line; +158,Weed/Kelp,WEDKLP,CATWED;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +159,Wreck,WRECKS,CATWRK;CONRAD;CONVIS;EXPSOU;HEIGHT;NOBJNM;OBJNAM;QUASOU;SOUACC;STATUS;TECSOU;VALSOU;VERACC;VERDAT;VERLEN;WATLEV;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +160,Tidal stream - flood/ebb,TS_FEB,CAT_TS;CURVEL;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Point;Area; +161,Archipelagix Sea Lane,ARCSLN,DATEND;DATSTA;NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Area; +162,Archipelagix Sea Lane axis,ASLXIS,DATEND;DATSTA;NATION;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line; +163,New object,NEWOBJ,CLSDEF;CLSNAM;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;NATION;NOBJNM;OBJNAM;PEREND;PERSTA;RESTRN;STATUS;WATLEV;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;SYMINS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,G,Line;Area;Point; +300,Accuracy of data,M_ACCY,HORACC;POSACC;SOUACC;VERACC;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +301,Compilation scale of data,M_CSCL,CSCALE;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +302,Coverage,M_COVR,CATCOV;,INFORM;NINFOM;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +303,Horizontal datum of data,M_HDAT,HORDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +304,Horizontal datum shift parameters,M_HOPA,HORDAT;SHIPAM;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +305,Nautical publication information,M_NPUB,,INFORM;NINFOM;NTXTDS;PICREP;PUBREF;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +306,Navigational system of marks,M_NSYS,MARSYS;ORIENT;,INFORM;NINFOM;NTXTDS;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +307,Production information,M_PROD,AGENCY;CPDATE;NATION;NMDATE;PRCTRY;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +308,Quality of data,M_QUAL,CATQUA;CATZOC;DRVAL1;DRVAL2;POSACC;SOUACC;SUREND;SURSTA;TECSOU;VERDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +309,Sounding datum,M_SDAT,VERDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +310,Survey reliability,M_SREL,QUAPOS;QUASOU;SCVAL1;SCVAL2;SDISMN;SDISMX;SURATH;SUREND;SURSTA;SURTYP;TECSOU;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +311,Units of measurement of data,M_UNIT,DUNITS;HUNITS;PUNITS;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +312,Vertical datum of data,M_VDAT,VERDAT;,INFORM;NINFOM;NTXTDS;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,M,Area; +400,Aggregation,C_AGGR,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,C, +401,Association,C_ASSO,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,C, +402,Stacked on/stacked under,C_STAC,,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,C, +500,Cartographic area,$AREAS,COLOUR;ORIENT;$SCODE;$TINTS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +501,Cartographic line,$LINES,$SCODE;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +502,Cartographic symbol,$CSYMB,ORIENT;$SCALE;$SCODE;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +503,Compass,$COMPS,$CSIZE;RYRMGV;VALACM;VALMAG;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +504,Text,$TEXTS,$CHARS;COLOUR;$JUSTH;$JUSTV;$NTXST;$SPACE;$TXSTR;,INFORM;NINFOM;NTXTDS;PICREP;SCAMAX;SCAMIN;TXTDSC;,RECDAT;RECIND;SORDAT;SORIND;,$, +0,"###Codes in the 17xxx range come from past s57objectclasses_iw.csv (Inland Waterways)",,,,,, +17000,Anchor berth,achbrt,catach;clsdng;comctn;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;RADIUS;restrn;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17001,Anchorage area,achare,catach;clsdng;comctn;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;restrn;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17002,Canal bank,canbnk,catbnk;CONRAD;DATEND;DATSTA;NATSUR;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line; +17003,Depth area,depare,DRVAL1;DRVAL2;eleva1;eleva2;wtwdis;QUASOU;SOUACC;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line;Area; +17004,Distance mark,dismar,catdis;wtwdis;unlocd;DATEND;DATSTA;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17005,Restricted area,resare,CATREA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;restrn;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17006,River bank,rivbnk,catbnk;CONRAD;NATSUR;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line; +17007,Signal station traffic,sistat,catsit;COMCHA;DATEND;DATSTA;dirimp;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17008,Signal station warning,sistaw,catsiw;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17009,Top Mark,topmar,COLOUR;COLPAT;HEIGHT;marsys;STATUS;TOPSHP;VERACC;verdat;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17010,Berth berths,berths,catbrt;clsdng;comctn;DATEND;DATSTA;DRVAL1;NOBJNM;OBJNAM;PEREND;PERSTA;QUASOU;SOUACC;STATUS;trshgd;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line;Area; +17011,"Bridge","bridge",catbrg;comctn;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;HORACC;HORCLR;NATCON;NOBJNM;OBJNAM;TIMEND;TIMSTA;VERACC;VERCCL;VERCLR;VERCOP;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line;Area; +17012,Cable overhead,cblohd,CATCBL;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;ICEFAC;NOBJNM;OBJNAM;STATUS;VERACC;VERCLR;VERCSA;verdat;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;RECDAT;RECIND;,SORDAT;SORIND;,G,Line; +17013,Ferry route,feryrt,catfry;comctn;DATEND;DATSTA;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line;Area; +17014,Harbour Area,hrbare,cathbr;comctn;NOBJNM;OBJNAM;STATUS;unlocd;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17015,Harbour Facilities,hrbfac,cathaf;CONDTN;DATEND;DATSTA;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17016,Lock Basin,lokbsn,HORACC;horcll;horclw;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17017,Radio calling-in point,rdocal,catcom;comctn;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;ORIENT;PEREND;PERSTA;STATUS;TRAFIC;dirimp;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line; +17018,Navigational system of marks,m_nsys,marsys;ORIENT;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17050,Notice mark,notmrk,catnmk;fnctnm;dirimp;disipd;disipu;disbk1;disbk2;addmrk;marsys;ORIENT;CONDTN;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17051,Waterway axis,wtwaxs,catccl;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Line; +17052,Waterway profile,wtwprf,wtwdis;HEIGHT;verdat;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Line; +17053,Bridge area,brgare,comctn;NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17054,Bunker station,bunsta,bunves;catbun;comctn;NOBJNM;OBJNAM;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17055,Communication Area,comare,catcom;COMCHA;DATEND;DATSTA;NOBJNM;OBJNAM;STATUS;TIMEND;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17056,Harbour Basin,hrbbsn,HORACC;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17057,Lock area,lokare,comctn;NOBJNM;OBJNAM;STATUS;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17058,Lock basin part,lkbspt,HORACC;horcll;horclw;HORLEN;HORWID;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17059,Port Area,prtare,comctn;NOBJNM;OBJNAM;STATUS;unlocd;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Area; +17060,Beacon water-way,bcnwtw,BCNSHP;catwwm;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;dirimp;ELEVAT;HEIGHT;marsys;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERACC;verdat;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17061,Buoy water-way,boywtw,BOYSHP;catwwm;COLOUR;COLPAT;CONDTN;CONRAD;CONVIS;DATEND;DATSTA;marsys;NATCON;NOBJNM;OBJNAM;PEREND;PERSTA;STATUS;VERLEN;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17062,Refuse dump,refdmp,catrfd;comctn;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17063,Route planning point,rtplpt,NOBJNM;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point; +17064,Terminal,termnl,cattml;comctn;NOBJNM;OBJNAM;STATUS;TIMEND;TIMSTA;trshgd;unlocd;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +17065,Turning basin,trnbsn,HORCLR;NOBJNM;STATUS;OBJNAM;,INFORM;NINFOM;NTXTDS;PICREP;SCAMIN;TXTDSC;updmsg;,SORDAT;SORIND;,G,Point;Area; +0,"###Codes in the 20xxx and 21xxx range come from past s57objectclasses_aml.csv (Additional_Military_Layers)",,,,,, +20484,"ATS Route Centreline","atsctl","authty;linech;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20485,"Airspace Restriction","airres + catasr","authty;catasr;linech;maxalt;maxftl;minalt;minftl;NOBJNM;OBJNAM;HUNITS;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20486,"Area of Imagery Coverage","imgare","bearng;catimg;ELEVAT;HUNITS;orgntr;SUREND;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20487,"Beach Exit","bchext","ccmidx;exitus;gradnt;HORCLR;HORLEN;HORWID;HUNITS;VERCSA;wbrcap","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;L" +20488,"Beach Profile","bchprf","bearng;gradnt;SUREND","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20489,"Beach Survey","bchare","accres;brktyp;ccmidx;dgmrlf;HORLEN;HORWID;HUNITS;quabch;orgntr;srfhgt;srfzne;stbacv;SUREND;SURSTA;swlhgt;tdlrng;tdltyp","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P A " +20490,"Bedrock area","bedare","N/A","N/A",,"G","A" +20491,"Bottom Feature","botmft + catbot","catbot;DUNITS;gradnt;HORLEN;HORWID;HUNITS;migspd;migdir;NOBJNM;OBJNAM;ORIENT;soudat;stfotn;VALSOU;VERLEN;WATLEV;wavlen","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;L;A" +20492,"Centre Line","centre","N/A","N/A",,"G","L" +20494,"Contact History","histob","orgntr;surdat;SUREND","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20495,"Controlled airspace","ctlasp + catcas","authty;catcas;caircd;linech;maxalt;maxftl;minalt;minftl;NOBJNM;OBJNAM;HUNITS;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L;A" +20496,"Diving Location","divloc","depact;divact;DUNITS;OBJNAM;NOBJNM;timeyr;watclr","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20497,"Drinking Water Location","watloc","N/A","N/A",,"G","P" +20498,"Drop Zone","drpzne","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20499,"Environmentally Sensitive Area","envare","authty;legsta;OBJNAM;NOBJNM;PEREND;PERSTA","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A;P" +20500,"Fishing Activity Area","fshare","catfsh;STATUS;timeyr","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20501,"Impact Scour","iscour","datfir;datlst;depwat;DUNITS;gendep;HORLEN;HORWID;HUNITS;NATQUA;NATSUR;NOBJNM;OBJNAM;orcard;ORIENT;QUASOU;senfir;senlst;sonsig;sorfir;sorlst;SOUACC;soudat;STATUS;TECSOU;VALSOU;VERLEN;WATLEV","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20502,"Landing Area","lngare","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20503,"Landing Place","lndplc","gradnt;STATUS;wbrcap","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20504,"Landing Point","lndpnt","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20505,"Landing Site","lndste","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20506,"Landing Strip","lndstp","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20507,"Landing Zone","lndzne","apprch;extdes;lndcon;OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20508,"Marine management area","marman + catmma","actper;authty;catmma;identy;linech;NOBJNM;OBJNAM;NATION;spcies;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20509,"Maritime Safety Information area","msiare","catmsi;condet;NATION;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20510,"MCM Area","mcmare","mhclas;milden;nomden","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20511,"Military exercise airspace","mexasp + catmea","actper;authty;catmea;linech;maxalt;maxftl;minalt;minftl;NOBJNM;OBJNAM;HUNITS;VERDAT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20513,"Patrol area","patare + catpat","authty;catpat;identy;linech;NOBJNM;OBJNAM;NATION;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20514,"Q-Route Leg","qroute","actper;dnbear;lftwid;NATION;NOBJNM;OBJNAM;rclass;rgtwid;STATUS;TRAFIC;HUNITS;upbear","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20515,"Radio broadcast area","rdoare","NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20516,"Regulated airspace","regasp","N/A","N/A",,"G","A" +20517,"Geological Layer","sedlay","attutn;bulkdn;COLOUR;deplyr;dttdep;dttnum;DUNITS;gascon;grnsiz;hfbmls;laynum;lfbmls;mgstyp;reflco;migspd;migdir;msstrg;natsed;NATQUA;porsty;revebn;revfqy;revgan;samret;sndvel;snrflc;soudat;WATLEV;wbrcap","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20518,"Seismic Activity Area","seiare","bearng;ricsca","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20519,"Sensor Anomaly","senanm","datfir;datlst;DUNITS;gendep;HUNITS;madsig;magany;magint;NOBJNM;OBJNAM;orcard;ORIENT;QUASOU;scrdim;senfir;senlst;sonsig;sorfir;sorlst;soudat;SOUACC;STATUS;TECSOU;VALSOU;WATLEV","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20520,"Shelter Location","shlloc","OBJNAM;NOBJNM;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20521,"Superficial Sediment Deposits","seddep","N/A","N/A",,"G","A" +20522,"Trafficability Area","trfare","cattrf","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20523,"Trawl Scours","twlscr","HUNITS;HORWID;ORIENT","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L;A" +20524,"Turning point","turnpt","NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20525,"Viewpoint","viewpt","bearng;discon;DUNITS;shpspd;snrfrq;snrrsc;twdbdp","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20526,"Bottom Tactical Data Area","btdare","mntden;undmnr;umnrwb;umrwob","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20527,"Burial Probability Area","bprare","brmchm;brperd;brprob;tgrfwt","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20528,"Leisure Activity Area","lsrare","lsract;timeyr","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20529,"Performance Data Area","pfdare","clperc;clprob;csprob;cswidt;dsprob;dtprob","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20530,"Resource Location","resloc","typres;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20531,"Risk Data Area","rkdare","conlev;numrmn;prbrmn;rmnlmn;sminth;znecol","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20532,"Navigation system (NAVAID)","navaid + CATROS","actper;CALSGN;CATROS;COMCHA;NOBJNM;OBJNAM;SIGFRQ","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +20533,"Internal Waters Area ","intwtr","linech;NATION;RESTRN;STATUS","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20534,"Sea Ice","seaice","iceact;icecvt;icesod;icemax;icemin;icerdv;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20535,"Ice Advisory Area","iceadv","iceadc;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20536,"Iceberg Area","brgare","icebnm;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20537,"Land Ice","lndice","icelnd;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20538,"Ice Line","icelin","icelnc;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20539,"Ice Route","icerte","NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20540,"Ice Polynya","icepol","icepst;icepty;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","A" +20541,"Ice Lead","icelea","icelty;icelst;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L;A" +20542,"Iceberg","icebrg","icebsz;icebsh;icebdr;icebsp;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20543,"Ice Movement","icemov","icebsp;icebdr;NOBJNM;OBJNAM","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;A" +20544,"Traffic route","tfcrte","linech;NOBJNM;OBJNAM;PEREND;PERSTA;traden;TRAFIC;typshp","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","L" +20717,"User Defined","u_defd","txtdes","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P;L;A" +20718,"Small Bottom Object","smalbo","blndzn;brmchm;brpctg;COLOUR;comsys;datfir;datlst;depwat;DUNITS;gendep;HORLEN;HORWID;HUNITS;incltn;layptm;layrfn;laytim;madsig;magany;magint;minern;miscls;miscom;misdat;misnme;mnhsys;mnimnc;mnimnt;mnssys;mulcon;mwdcrn;NATCON;navsys;notfnd;nmprob;objtrn;objshp;onsonr;orbobn;orgdat;orgntr;ORIENT;QUASOU;scrdim;senfir;senlst;snrflc;soudat;stacon;surdat;SUREND;tarstg;TECSOU;unwrfm;VERLEN","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"G","P" +21484,"Completeness for the product specification","m_conf + catcnf","catcnf","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","A" +21485,"Security Classification Information","m_clas","","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","A" +21486,"Vertical Datum Shift Area","m_vers","vershf","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","P;A" +21487,"Defined Straight Lines","m_line","linech","AGENCY;CSCALE;elvacc;errell;HORACC;INFORM;NINFOM;NTXTDS;PICREP;POSACC;PRCTRY;PUBREF;RECDAT;QUAPOS;seccvt;secido;secown;secpmk;SORDAT;SORIND;TXTDSC;VERACC",,"M","N/A" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/seed_2d.dgn b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/seed_2d.dgn new file mode 100644 index 0000000000000000000000000000000000000000..b99cad81a540723c9d75cb5f76af92000b280ef1 GIT binary patch literal 9216 zcmeGhZDvp=?Z1qu4=ERxT>q#l0{)u%4D4k=RWMPYY~sx zK{r+qCTw#fla4X*N3pP?Lkq!y`?c9^f85Hj^VblzW&7n;=bbVL_xl>ghOJQ-mE=xE*?b#h4tN-u z=Akt3xv+p)mWoqhJT+O4`YV6)W6yDYlg2%?-=33y|2)QX(@vZ;V(85oiDRpmw8x50lgA=&7qu*WX zM%n5cJ5w-Zn!j`WZa2W05XbF**_5VvlST^TRSkQhYl z(l8G`7|=hZdCFrgT+B0xd0=uc6P6A_+5wx${yTUl?6e++?9o{XR6b+7;R@MKEO>+p zfnVkqDvb}foN%aH?W>E1R#rvv3p*NJ6|IY+4uE;p^jN=wm*ukQh!kQI1y~a(0Qh+F z)dPnTuOuu=*-n-qk9#b%Y&GSDl-zl6`xk2`aqs=hK~XzK4+zUi-TxY~0zBlA=1KSJ z0nX!aca zRy-Y%NS$TCy64CA8oa%Q>Dd`=N@hB6p0M7@fy+4lm|@O5SBvB zm$EYm3BYqyBIqE8am1J*^dyu>Yy0+ zLurcDq%f{RPF)eBgQQ(1lA^7@1Piwq86dG=8!+P zNJTo77)n@_bS5Ar^VF*@wO)O>E!z@rfO!+T#Xox2k7hh_I$N*Yyc^febGgqH`ul&K zt6-g$Ls`^tp)0EwfB;c9t6?Eqb6x;Jwd0JpG9JKwjICB04Wee%(+E8FZP=^P-i<4w zUipj&)Dy+VPCB&+_%B@-q~SCf+sNo5B@B6WAg%I1crs#SkU#3Xf@y8&dYUJPtEkJ1 z#K!s@-0hB$_cLS-F1Q(RGq4mg;Flh^6ic?+0j$Co$7XZyup#PT3pBzLz76yzK#n%m z!-=gBhi2b;ubnK%&=o9+46yeS7ra8cZdteWY+Y9SegN9NQ;a5l@=e@-OnbkAZ*m_l Z#7HT9qrZeR&z*-}vvoB#Pm{EH{RedVUN= z+YvfoI#Fq2jQ#>ni1sXVQ4v`~Uyv`NzPpT!n!lU50_-1v5++!W>i< zvGUz^4>lBU%ZOoM_`-;=_22)5%K!hPUqEav4`5)3wxg!4|7_D*G3HsCahnZe)zC=Rg!1t)Bx3=Fu$v8$$~C@9t-AOTpSfl@q-Pj{Nj O2dkBg4OoTgDhL2_{u}E6 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/stateplane.csv b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/stateplane.csv new file mode 100644 index 00000000..38089e71 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/stateplane.csv @@ -0,0 +1,259 @@ +"ID","STATE","ZONE","PROJ_METHOD","DATUM","USGS_CODE","EPSG_PCS_CODE" +101,ALABAMA,EAST,1,NAD83,101,26929 +102,ALABAMA,WEST,1,NAD83,102,26930 +201,ARIZONA,EAST,1,NAD83,201,26948 +202,ARIZONA,CENTRAL,1,NAD83,202,26949 +203,ARIZONA,WEST,1,NAD83,203,26950 +301,ARKANSAS,NORTH,2,NAD83,301,26951 +302,ARKANSAS,SOUTH,2,NAD83,302,26952 +401,CALIFORNIA,I,2,NAD83,401,26941 +402,CALIFORNIA,II,2,NAD83,402,26942 +403,CALIFORNIA,III,2,NAD83,403,26943 +404,CALIFORNIA,IV,2,NAD83,404,26944 +405,CALIFORNIA,V,2,NAD83,405,26945 +406,CALIFORNIA,VI,2,NAD83,406,26946 +501,COLORADO,NORTH,2,NAD83,501,26953 +502,COLORADO,CENTRAL,2,NAD83,502,26954 +503,COLORADO,SOUTH,2,NAD83,503,26955 +600,CONNECTICUT,,2,NAD83,600,26956 +700,DELAWARE,,1,NAD83,700,26957 +901,FLORIDA,EAST,1,NAD83,901,26958 +902,FLORIDA,WEST,1,NAD83,902,26959 +903,FLORIDA,NORTH,2,NAD83,903,26960 +1001,GEORGIA,EAST,1,NAD83,1001,26966 +1002,GEORGIA,WEST,1,NAD83,1002,26967 +1101,IDAHO,EAST,1,NAD83,1101,26968 +1102,IDAHO,CENTRAL,1,NAD83,1102,26969 +1103,IDAHO,WEST,1,NAD83,1103,26970 +1201,ILLINOIS,EAST,1,NAD83,1201,26971 +1202,ILLINOIS,WEST,1,NAD83,1202,26972 +1301,INDIANA,EAST,1,NAD83,1301,26973 +1302,INDIANA,WEST,1,NAD83,1302,26974 +1401,IOWA,NORTH,2,NAD83,1401,26975 +1402,IOWA,SOUTH,2,NAD83,1402,26976 +1501,KANSAS,NORTH,2,NAD83,1501,26977 +1502,KANSAS,SOUTH,2,NAD83,1502,26978 +1600,KENTUCKY,SINGLE ZONE,2,NAD83,1600,3088 +1601,KENTUCKY,NORTH,2,NAD83,1601,2205 +1602,KENTUCKY,SOUTH,2,NAD83,1602,26980 +1701,LOUISIANA,NORTH,2,NAD83,1701,26981 +1702,LOUISIANA,SOUTH,2,NAD83,1702,26982 +1703,LOUISIANA,OFFSHORE,2,NAD83,1703, +1801,MAINE,EAST,1,NAD83,1801,26983 +1802,MAINE,WEST,1,NAD83,1802,26984 +1900,MARYLAND,,2,NAD83,1900,26985 +2001,MASSACHUSETTS,MAINLAND,2,NAD83,2001,26986 +2002,MASSACHUSETTS,ISLAND,2,NAD83,2002,26987 +2111,MICHIGAN,NORTH,2,NAD83,2111,26988 +2112,MICHIGAN,CENTRAL,2,NAD83,2112,26989 +2113,MICHIGAN,SOUTH,2,NAD83,2113,26990 +2201,MINNESOTA,NORTH,2,NAD83,2201,26991 +2202,MINNESOTA,CENTRAL,2,NAD83,2202,26992 +2203,MINNESOTA,SOUTH,2,NAD83,2203,26993 +2301,MISSISSIPPI,EAST,1,NAD83,2301,26994 +2302,MISSISSIPPI,WEST,1,NAD83,2302,26995 +2401,MISSOURI,EAST,1,NAD83,2401,26996 +2402,MISSOURI,CENTRAL,1,NAD83,2402,26997 +2403,MISSOURI,WEST,1,NAD83,2403,26998 +2500,MONTANA,,2,NAD83,2500,32100 +2600,NEBRASKA,,2,NAD83,2600,32104 +2701,NEVADA,EAST,1,NAD83,2701,32107 +2702,NEVADA,CENTRAL,1,NAD83,2702,32108 +2703,NEVADA,WEST,1,NAD83,2703,32109 +2800,"NEW HAMPSHIRE",,1,NAD83,2800,32110 +2900,"NEW JERSEY",,1,NAD83,2900,32111 +3001,"NEW MEXICO",EAST,1,NAD83,3001,32112 +3002,"NEW MEXICO",CENTRAL,1,NAD83,3002,32113 +3003,"NEW MEXICO",WEST,1,NAD83,3003,32114 +3101,"NEW YORK",EAST,1,NAD83,3101,32115 +3102,"NEW YORK",CENTRAL,1,NAD83,3102,32116 +3103,"NEW YORK",WEST,1,NAD83,3103,32117 +3104,"NEW YORK","LONG ISLAND",2,NAD83,3104,32118 +3200,"NORTH CAROLINA",,2,NAD83,3200,32119 +3301,"NORTH DAKOTA",NORTH,2,NAD83,3301,32120 +3302,"NORTH DAKOTA",SOUTH,2,NAD83,3302,32121 +3401,OHIO,NORTH,2,NAD83,3401,32122 +3402,OHIO,SOUTH,2,NAD83,3402,32123 +3501,OKLAHOMA,NORTH,2,NAD83,3501,32124 +3502,OKLAHOMA,SOUTH,2,NAD83,3502,32125 +3601,OREGON,NORTH,2,NAD83,3601,32126 +3602,OREGON,SOUTH,2,NAD83,3602,32127 +3701,PENNSYLVANIA,NORTH,2,NAD83,3701,32128 +3702,PENNSYLVANIA,SOUTH,2,NAD83,3702,32129 +3800,"RHODE ISLAND",,1,NAD83,3800,32130 +3900,"SOUTH CAROLINA",,2,NAD83,3900,32133 +4001,"SOUTH DAKOTA",NORTH,2,NAD83,4001,32134 +4002,"SOUTH DAKOTA",SOUTH,2,NAD83,4002,32135 +4100,TENNESSEE,,2,NAD83,4100,32136 +4201,TEXAS,NORTH,2,NAD83,4201,32137 +4202,TEXAS,"NORTH CENTRAL",2,NAD83,4202,32138 +4203,TEXAS,CENTRAL,2,NAD83,4203,32139 +4204,TEXAS,"SOUTH CENTRAL",2,NAD83,4204,32140 +4205,TEXAS,SOUTH,2,NAD83,4205,32141 +4301,UTAH,NORTH,2,NAD83,4301,32142 +4302,UTAH,CENTRAL,2,NAD83,4302,32143 +4303,UTAH,SOUTH,2,NAD83,4303,32144 +4400,VERMONT,,1,NAD83,4400,32145 +4501,VIRGINIA,NORTH,2,NAD83,4501,32146 +4502,VIRGINIA,SOUTH,2,NAD83,4502,32147 +4601,WASHINGTON,NORTH,2,NAD83,4601,32148 +4602,WASHINGTON,SOUTH,2,NAD83,4602,32149 +4701,"WEST VIRGINIA",NORTH,2,NAD83,4701,32150 +4702,"WEST VIRGINIA",SOUTH,2,NAD83,4702,32151 +4801,WISCONSIN,NORTH,2,NAD83,4801,32152 +4802,WISCONSIN,CENTRAL,2,NAD83,4802,32153 +4803,WISCONSIN,SOUTH,2,NAD83,4803,32154 +4901,WYOMING,EAST,1,NAD83,4901,32155 +4902,WYOMING,"EAST CENTRAL",1,NAD83,4902,32156 +4903,WYOMING,"WEST CENTRAL",1,NAD83,4903,32157 +4904,WYOMING,WEST,1,NAD83,4904,32158 +5001,ALASKA,"ZONE NO. 1",4,NAD83,5001,26931 +5002,ALASKA,"ZONE NO. 2",1,NAD83,5002,26932 +5003,ALASKA,"ZONE NO. 3",1,NAD83,5003,26933 +5004,ALASKA,"ZONE NO. 4",1,NAD83,5004,26934 +5005,ALASKA,"ZONE NO. 5",1,NAD83,5005,26935 +5006,ALASKA,"ZONE NO. 6",1,NAD83,5006,26936 +5007,ALASKA,"ZONE NO. 7",1,NAD83,5007,26937 +5008,ALASKA,"ZONE NO. 8",1,NAD83,5008,26938 +5009,ALASKA,"ZONE NO. 9",1,NAD83,5009,26939 +5010,ALASKA,"ZONE NO. 10",2,NAD83,5010,26940 +5101,HAWAII,1,1,NAD83,5101,26961 +5102,HAWAII,2,1,NAD83,5102,26962 +5103,HAWAII,3,1,NAD83,5103,26963 +5104,HAWAII,4,1,NAD83,5104,26964 +5105,HAWAII,5,1,NAD83,5105,26965 +5200,"PUERTO RICO AND","VIRGIN ISLANDS",2,NAD83,5200,32161 +10101,ALABAMA,EAST,1,NAD27,101,26729 +10102,ALABAMA,WEST,1,NAD27,102,26730 +10201,ARIZONA,EAST,1,NAD27,201,26748 +10202,ARIZONA,CENTRAL,1,NAD27,202,26749 +10203,ARIZONA,WEST,1,NAD27,203,26750 +10301,ARKANSAS,NORTH,2,NAD27,301,26751 +10302,ARKANSAS,SOUTH,2,NAD27,302,26752 +10401,CALIFORNIA,I,2,NAD27,401,26741 +10402,CALIFORNIA,II,2,NAD27,402,26742 +10403,CALIFORNIA,III,2,NAD27,403,26743 +10404,CALIFORNIA,IV,2,NAD27,404,26744 +10405,CALIFORNIA,V,2,NAD27,405,26745 +10406,CALIFORNIA,VI,2,NAD27,406,26746 +10407,CALIFORNIA,VII,2,NAD27,407,26799 +10501,COLORADO,NORTH,2,NAD27,501,26753 +10502,COLORADO,CENTRAL,2,NAD27,502,26754 +10503,COLORADO,SOUTH,2,NAD27,503,26755 +10600,CONNECTICUT,,2,NAD27,600,26756 +10700,DELAWARE,,1,NAD27,700,26757 +10901,FLORIDA,EAST,1,NAD27,901,26758 +10902,FLORIDA,WEST,1,NAD27,902,26759 +10903,FLORIDA,NORTH,2,NAD27,903,26760 +11001,GEORGIA,EAST,1,NAD27,1001,26766 +11002,GEORGIA,WEST,1,NAD27,1002,26767 +11101,IDAHO,EAST,1,NAD27,1101,26768 +11102,IDAHO,CENTRAL,1,NAD27,1102,26769 +11103,IDAHO,WEST,1,NAD27,1103,26770 +11201,ILLINOIS,EAST,1,NAD27,1201,26771 +11202,ILLINOIS,WEST,1,NAD27,1202,26772 +11301,INDIANA,EAST,1,NAD27,1301,26773 +11302,INDIANA,WEST,1,NAD27,1302,26774 +11401,IOWA,NORTH,2,NAD27,1401,26775 +11402,IOWA,SOUTH,2,NAD27,1402,26776 +11501,KANSAS,NORTH,2,NAD27,1501,26777 +11502,KANSAS,SOUTH,2,NAD27,1502,26778 +11601,KENTUCKY,NORTH,2,NAD27,1601,26779 +11602,KENTUCKY,SOUTH,2,NAD27,1602,26780 +11701,LOUISIANA,NORTH,2,NAD27,1701,26781 +11702,LOUISIANA,SOUTH,2,NAD27,1702,26782 +11703,LOUISIANA,OFFSHORE,2,NAD27,1703, +11801,MAINE,EAST,1,NAD27,1801,26783 +11802,MAINE,WEST,1,NAD27,1802,26784 +11900,MARYLAND,,2,NAD27,1900,26785 +12001,MASSACHUSETTS,MAINLAND,2,NAD27,2001,26786 +12002,MASSACHUSETTS,ISLAND,2,NAD27,2002,26787 +12101,MICHIGAN,EAST,1,NAD27,2101,26801 +12102,MICHIGAN,"CENTRAL/M",1,NAD27,2102,26802 +12103,MICHIGAN,WEST,1,NAD27,2103,26803 +12111,MICHIGAN,NORTH,2,NAD27,2111,26811 +12112,MICHIGAN,"CENTRAL/L",2,NAD27,2112,26812 +12113,MICHIGAN,SOUTH,2,NAD27,2113,26813 +12201,MINNESOTA,NORTH,2,NAD27,2201,26791 +12202,MINNESOTA,CENTRAL,2,NAD27,2202,26792 +12203,MINNESOTA,SOUTH,2,NAD27,2203,26793 +12301,MISSISSIPPI,EAST,1,NAD27,2301,26794 +12302,MISSISSIPPI,WEST,1,NAD27,2302,26795 +12401,MISSOURI,EAST,1,NAD27,2401,26796 +12402,MISSOURI,CENTRAL,1,NAD27,2402,26797 +12403,MISSOURI,WEST,1,NAD27,2403,26798 +12501,MONTANA,NORTH,2,NAD27,2501,32001 +12502,MONTANA,CENTRAL,2,NAD27,2502,32002 +12503,MONTANA,SOUTH,2,NAD27,2503,32003 +12601,NEBRASKA,NORTH,2,NAD27,2601,32005 +12602,NEBRASKA,SOUTH,2,NAD27,2602,32006 +12701,NEVADA,EAST,1,NAD27,2701,32007 +12702,NEVADA,CENTRAL,1,NAD27,2702,32008 +12703,NEVADA,WEST,1,NAD27,2703,32009 +12800,"NEW HAMPSHIRE",,1,NAD27,2800,32010 +12900,"NEW JERSEY",,1,NAD27,2900,32011 +13001,"NEW MEXICO",EAST,1,NAD27,3001,32012 +13002,"NEW MEXICO",CENTRAL,1,NAD27,3002,32013 +13003,"NEW MEXICO",WEST,1,NAD27,3003,32014 +13101,"NEW YORK",EAST,1,NAD27,3101,32015 +13102,"NEW YORK",CENTRAL,1,NAD27,3102,32016 +13103,"NEW YORK",WEST,1,NAD27,3103,32017 +13104,"NEW YORK","LONG ISLAND",2,NAD27,3104,32018 +13200,"NORTH CAROLINA",,2,NAD27,3200,32019 +13301,"NORTH DAKOTA",NORTH,2,NAD27,3301,32020 +13302,"NORTH DAKOTA",SOUTH,2,NAD27,3302,32021 +13401,OHIO,NORTH,2,NAD27,3401,32022 +13402,OHIO,SOUTH,2,NAD27,3402,32023 +13501,OKLAHOMA,NORTH,2,NAD27,3501,32024 +13502,OKLAHOMA,SOUTH,2,NAD27,3502,32025 +13601,OREGON,NORTH,2,NAD27,3601,32026 +13602,OREGON,SOUTH,2,NAD27,3602,32027 +13701,PENNSYLVANIA,NORTH,2,NAD27,3701,32028 +13702,PENNSYLVANIA,SOUTH,2,NAD27,3702,32029 +13800,"RHODE ISLAND",,1,NAD27,3800,32030 +13901,"SOUTH CAROLINA",NORTH,2,NAD27,3901,32031 +13902,"SOUTH CAROLINA",SOUTH,2,NAD27,3902,32033 +14001,"SOUTH DAKOTA",NORTH,2,NAD27,4001,32034 +14002,"SOUTH DAKOTA",SOUTH,2,NAD27,4002,32035 +14100,TENNESSEE,,2,NAD27,4100,2204 +14201,TEXAS,NORTH,2,NAD27,4201,32037 +14202,TEXAS,"NORTH CENTRAL",2,NAD27,4202,32038 +14203,TEXAS,CENTRAL,2,NAD27,4203,32039 +14204,TEXAS,"SOUTH CENTRAL",2,NAD27,4204,32040 +14205,TEXAS,SOUTH,2,NAD27,4205,32041 +14301,UTAH,NORTH,2,NAD27,4301,32042 +14302,UTAH,CENTRAL,2,NAD27,4302,32043 +14303,UTAH,SOUTH,2,NAD27,4303,32044 +14400,VERMONT,,1,NAD27,4400,32045 +14501,VIRGINIA,NORTH,2,NAD27,4501,32046 +14502,VIRGINIA,SOUTH,2,NAD27,4502,32047 +14601,WASHINGTON,NORTH,2,NAD27,4601,32048 +14602,WASHINGTON,SOUTH,2,NAD27,4602,32049 +14701,"WEST VIRGINIA",NORTH,2,NAD27,4701,32050 +14702,"WEST VIRGINIA",SOUTH,2,NAD27,4702,32051 +14801,WISCONSIN,NORTH,2,NAD27,4801,32052 +14802,WISCONSIN,CENTRAL,2,NAD27,4802,32053 +14803,WISCONSIN,SOUTH,2,NAD27,4803,32054 +14901,WYOMING,EAST,1,NAD27,4901,32055 +14902,WYOMING,"EAST CENTRAL",1,NAD27,4902,32056 +14903,WYOMING,"WEST CENTRAL",1,NAD27,4903,32057 +14904,WYOMING,WEST,1,NAD27,4904,32058 +15001,ALASKA,"ZONE NO. 1",4,NAD27,5001,26731 +15002,ALASKA,"ZONE NO. 2",1,NAD27,5002,26732 +15003,ALASKA,"ZONE NO. 3",1,NAD27,5003,26733 +15004,ALASKA,"ZONE NO. 4",1,NAD27,5004,26734 +15005,ALASKA,"ZONE NO. 5",1,NAD27,5005,26735 +15006,ALASKA,"ZONE NO. 6",1,NAD27,5006,26736 +15007,ALASKA,"ZONE NO. 7",1,NAD27,5007,26737 +15008,ALASKA,"ZONE NO. 8",1,NAD27,5008,26738 +15009,ALASKA,"ZONE NO. 9",1,NAD27,5009,26739 +15010,ALASKA,"ZONE NO. 10",2,NAD27,5010,26740 +15101,HAWAII,1,1,NAD27,5101,3561 +15102,HAWAII,2,1,NAD27,5102,3562 +15103,HAWAII,3,1,NAD27,5103,3563 +15104,HAWAII,4,1,NAD27,5104,3564 +15105,HAWAII,5,1,NAD27,5105,3565 +15201,"PUERTO RICO AND VIRGIN ISLANDS",,2,NAD27,5201,3991 +15202,"VIRGIN ISLANDS","ST. CROIX",2,NAD27,5202,3992 +15300,"AMERICAN SAMOA",,2,NAD27,5300,2155 +15400,"GUAM ISLAND",,3,NAD27,5400, diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml new file mode 100644 index 00000000..11366e15 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/template_tiles.mapml @@ -0,0 +1,28 @@ + + + states + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json new file mode 100644 index 00000000..9f217059 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_LINZAntarticaMapTileGrid.json @@ -0,0 +1,190 @@ +{ + "type": "TileMatrixSetType", + "title": "LINZ Antarctic Map Tile Grid (Ross Sea Region)", + "identifier": "LINZAntarticaMapTilegrid", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/5482", + "tileMatrix": [ + { + "type": "TileMatrixType", + "identifier": "0", + "scaleDenominator": 409600000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1, + "matrixHeight": 1 + }, + { + "type": "TileMatrixType", + "identifier": "1", + "scaleDenominator": 204800000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1, + "matrixHeight": 1 + }, + { + "type": "TileMatrixType", + "identifier": "2", + "scaleDenominator": 102400000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 2, + "matrixHeight": 2 + }, + { + "type": "TileMatrixType", + "identifier": "3", + "scaleDenominator": 51200000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 4, + "matrixHeight": 4 + }, + { + "type": "TileMatrixType", + "identifier": "4", + "scaleDenominator": 25600000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 7, + "matrixHeight": 7 + }, + { + "type": "TileMatrixType", + "identifier": "5", + "scaleDenominator": 12800000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 13, + "matrixHeight": 13 + }, + { + "type": "TileMatrixType", + "identifier": "6", + "scaleDenominator": 6400000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 26, + "matrixHeight": 26 + }, + { + "type": "TileMatrixType", + "identifier": "7", + "scaleDenominator": 3200000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 52, + "matrixHeight": 52 + }, + { + "type": "TileMatrixType", + "identifier": "8", + "scaleDenominator": 1600000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 104, + "matrixHeight": 104 + }, + { + "type": "TileMatrixType", + "identifier": "9", + "scaleDenominator": 800000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 207, + "matrixHeight": 207 + }, + { + "type": "TileMatrixType", + "identifier": "10", + "scaleDenominator": 400000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 413, + "matrixHeight": 413 + }, + { + "type": "TileMatrixType", + "identifier": "11", + "scaleDenominator": 200000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 826, + "matrixHeight": 826 + }, + { + "type": "TileMatrixType", + "identifier": "12", + "scaleDenominator": 100000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1652, + "matrixHeight": 1652 + }, + { + "type": "TileMatrixType", + "identifier": "13", + "scaleDenominator": 50000, + "topLeftCorner": [ + 6918457.73, + -918457.73 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 3303, + "matrixHeight": 3303 + } + ] +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json new file mode 100644 index 00000000..ec221e1f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_APSTILE.json @@ -0,0 +1,268 @@ +{ + "type": "TileMatrixSetType", + "identifier": "APSTILE", + "title": "Alaska Polar Stereographic-based tiled coordinate reference system for the Arctic region.", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/5936", + "tileMatrix": [ + { + "matrixHeight": 1, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 1, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 852895761.9785715 + }, + { + "matrixHeight": 2, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 2, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 426447880.98928577 + }, + { + "matrixHeight": 4, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 4, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 213223940.49464288 + }, + { + "matrixHeight": 8, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 8, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 106611970.24732144 + }, + { + "matrixHeight": 16, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 16, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 53305985.12366072 + }, + { + "matrixHeight": 32, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 32, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 26652992.56183036 + }, + { + "matrixHeight": 64, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 64, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 13326496.28091518 + }, + { + "matrixHeight": 128, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 128, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 6663248.14045759 + }, + { + "matrixHeight": 256, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 256, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 3331624.070228795 + }, + { + "matrixHeight": 512, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 512, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 1665812.0351143975 + }, + { + "matrixHeight": 1024, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 1024, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 832906.0175571988 + }, + { + "matrixHeight": 2048, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 2048, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 416453.0087785994 + }, + { + "matrixHeight": 4096, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 4096, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 208226.5043892997 + }, + { + "matrixHeight": 8192, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 8192, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 104113.25219464985 + }, + { + "matrixHeight": 16384, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 16384, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 52056.62609732492 + }, + { + "matrixHeight": 32768, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 32768, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 26028.31304866246 + }, + { + "matrixHeight": 65536, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 65536, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 13014.15652433123 + }, + { + "matrixHeight": 131072, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 131072, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 6507.078262165615 + }, + { + "matrixHeight": 262144, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 262144, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 3253.5391310828077 + }, + { + "matrixHeight": 524288, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -28567784.109255, + 32567784.109255 + ], + "matrixWidth": 524288, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 1626.7695655414038 + } + ] +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json new file mode 100644 index 00000000..2a391211 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_MapML_CBMTILE.json @@ -0,0 +1,346 @@ +{ + "type": "TileMatrixSetType", + "identifier": "CBMTILE", + "title": "Lambert Conformal Conic-based tiled coordinate reference system for Canada.", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/3978", + "tileMatrix": [ + { + "matrixHeight": 5, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 5, + "identifier": "0", + "type": "TileMatrixType", + "scaleDenominator": 137016643.08090523 + }, + { + "matrixHeight": 9, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 9, + "identifier": "1", + "type": "TileMatrixType", + "scaleDenominator": 80320101.1163927317 + }, + { + "matrixHeight": 15, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 15, + "identifier": "2", + "type": "TileMatrixType", + "scaleDenominator": 47247118.3037604243 + }, + { + "matrixHeight": 25, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 25, + "identifier": "3", + "type": "TileMatrixType", + "scaleDenominator": 28348270.982256256 + }, + { + "matrixHeight": 42, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 42, + "identifier": "4", + "type": "TileMatrixType", + "scaleDenominator": 16536491.40631615 + }, + { + "matrixHeight": 73, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 73, + "identifier": "5", + "type": "TileMatrixType", + "scaleDenominator": 9449423.66075208597 + }, + { + "matrixHeight": 121, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 121, + "identifier": "6", + "type": "TileMatrixType", + "scaleDenominator": 5669654.1964512514 + }, + { + "matrixHeight": 208, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 208, + "identifier": "7", + "type": "TileMatrixType", + "scaleDenominator": 3307298.2812632299 + }, + { + "matrixHeight": 363, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 363, + "identifier": "8", + "type": "TileMatrixType", + "scaleDenominator": 1889884.73215041705 + }, + { + "matrixHeight": 605, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 605, + "identifier": "9", + "type": "TileMatrixType", + "scaleDenominator": 1133930.83929025033 + }, + { + "matrixHeight": 1036, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1036, + "identifier": "10", + "type": "TileMatrixType", + "scaleDenominator": 661459.656252646004 + }, + { + "matrixHeight": 1727, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1727, + "identifier": "11", + "type": "TileMatrixType", + "scaleDenominator": 396875.793751587567 + }, + { + "matrixHeight": 2900, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 2900, + "identifier": "12", + "type": "TileMatrixType", + "scaleDenominator": 236235.591518802132 + }, + { + "matrixHeight": 5000, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 5000, + "identifier": "13", + "type": "TileMatrixType", + "scaleDenominator": 137016.643080905225 + }, + { + "matrixHeight": 8530, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 8530, + "identifier": "14", + "type": "TileMatrixType", + "scaleDenominator": 80320.1011163927178 + }, + { + "matrixHeight": 14501, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 14501, + "identifier": "15", + "type": "TileMatrixType", + "scaleDenominator": 47247.1183037604278 + }, + { + "matrixHeight": 24167, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 24167, + "identifier": "16", + "type": "TileMatrixType", + "scaleDenominator": 28348.2709822562538 + }, + { + "matrixHeight": 41429, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 41429, + "identifier": "17", + "type": "TileMatrixType", + "scaleDenominator": 16536.4914063161486 + }, + { + "matrixHeight": 72500, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 72500, + "identifier": "18", + "type": "TileMatrixType", + "scaleDenominator": 9449.4236607520852 + }, + { + "matrixHeight": 120834, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 120834, + "identifier": "19", + "type": "TileMatrixType", + "scaleDenominator": 5669.65419645125075 + }, + { + "matrixHeight": 207143, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 207143, + "identifier": "20", + "type": "TileMatrixType", + "scaleDenominator": 3307.29828126322991 + }, + { + "matrixHeight": 362501, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 362501, + "identifier": "21", + "type": "TileMatrixType", + "scaleDenominator": 1889.88473215041699 + }, + { + "matrixHeight": 604167, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 604167, + "identifier": "22", + "type": "TileMatrixType", + "scaleDenominator": 1133.93083929025011 + }, + { + "matrixHeight": 1035715, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1035715, + "identifier": "23", + "type": "TileMatrixType", + "scaleDenominator": 661.459656252645914 + }, + { + "matrixHeight": 1726191, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 1726191, + "identifier": "24", + "type": "TileMatrixType", + "scaleDenominator": 396.875793751587537 + }, + { + "matrixHeight": 2900001, + "tileHeight": 256, + "tileWidth": 256, + "topLeftCorner": [ + -34655800, + 39310000 + ], + "matrixWidth": 2900001, + "identifier": "25", + "type": "TileMatrixType", + "scaleDenominator": 236.235591518802124 + } + ] +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json new file mode 100644 index 00000000..779f9b72 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/tms_NZTM2000.json @@ -0,0 +1,243 @@ +{ + "type": "TileMatrixSetType", + "title": "LINZ NZTM2000 Map Tile Grid", + "abstract": "See https://www.linz.govt.nz/data/linz-data-service/guides-and-documentation/nztm2000-map-tile-service-schema", + "identifier": "NZTM2000", + "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/2193", + "boundingBox": + { + "type": "BoundingBoxType", + "crs": "http://www.opengis.net/def/crs/EPSG/0/2193", + "lowerCorner": [ + 3087000, + 274000 + ], + "upperCorner": [ + 7173000, + 3327000 + ] + }, + "tileMatrix": [ + { + "type": "TileMatrixType", + "identifier": "0", + "scaleDenominator": 32000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 2, + "matrixHeight": 4 + }, + { + "type": "TileMatrixType", + "identifier": "1", + "scaleDenominator": 16000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 4, + "matrixHeight": 8 + }, + { + "type": "TileMatrixType", + "identifier": "2", + "scaleDenominator": 8000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 8, + "matrixHeight": 16 + }, + { + "type": "TileMatrixType", + "identifier": "3", + "scaleDenominator": 4000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 16, + "matrixHeight": 32 + }, + { + "type": "TileMatrixType", + "identifier": "4", + "scaleDenominator": 2000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 32, + "matrixHeight": 64 + }, + { + "type": "TileMatrixType", + "identifier": "5", + "scaleDenominator": 1000000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 64, + "matrixHeight": 128 + }, + { + "type": "TileMatrixType", + "identifier": "6", + "scaleDenominator": 500000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 128, + "matrixHeight": 256 + }, + { + "type": "TileMatrixType", + "identifier": "7", + "scaleDenominator": 250000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 256, + "matrixHeight": 512 + }, + { + "type": "TileMatrixType", + "identifier": "8", + "scaleDenominator": 100000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 640, + "matrixHeight": 1280 + }, + { + "type": "TileMatrixType", + "identifier": "9", + "scaleDenominator": 50000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 1280, + "matrixHeight": 2560 + }, + { + "type": "TileMatrixType", + "identifier": "10", + "scaleDenominator": 25000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 2560, + "matrixHeight": 5120 + }, + { + "type": "TileMatrixType", + "identifier": "11", + "scaleDenominator": 10000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 6400, + "matrixHeight": 12800 + }, + { + "type": "TileMatrixType", + "identifier": "12", + "scaleDenominator": 5000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 12800, + "matrixHeight": 25600 + }, + { + "type": "TileMatrixType", + "identifier": "13", + "scaleDenominator": 2500, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 25600, + "matrixHeight": 51200 + }, + { + "type": "TileMatrixType", + "identifier": "14", + "scaleDenominator": 1000, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 64000, + "matrixHeight": 128000 + }, + { + "type": "TileMatrixType", + "identifier": "15", + "scaleDenominator": 500, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 128000, + "matrixHeight": 256000 + }, + { + "type": "TileMatrixType", + "identifier": "16", + "scaleDenominator": 250, + "topLeftCorner": [ + 10000000, + -1000000 + ], + "tileWidth": 256, + "tileHeight": 256, + "matrixWidth": 256000, + "matrixHeight": 512000 + } + ] +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/trailer.dxf b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/trailer.dxf new file mode 100644 index 00000000..19ebd400 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/trailer.dxf @@ -0,0 +1,434 @@ + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary +281 + 1 + 3 +ACAD_GROUP +350 +D + 3 +ACAD_LAYOUT +350 +1A + 3 +ACAD_MLEADERSTYLE +350 +43 + 3 +ACAD_PLOTSETTINGS +350 +19 + 3 +ACAD_PLOTSTYLENAME +350 +E + 3 +ACAD_TABLESTYLE +350 +42 + 0 +DICTIONARY + 5 +D +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +DICTIONARY + 5 +1A +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Layout1 +350 +1E + 3 +Model +350 +22 + 0 +DICTIONARY + 5 +43 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +DICTIONARY + 5 +19 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +ACDBDICTIONARYWDFLT + 5 +E +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Normal +350 +F +100 +AcDbDictionaryWithDefault +340 +F + 0 +DICTIONARY + 5 +42 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +LAYOUT + 5 +1E +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 688 + 72 + 0 + 73 + 0 + 74 + 5 + 7 + + 75 + 16 + 76 + 0 + 77 + 2 + 78 + 300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 + 1 + 71 + 1 + 10 +0.0 + 20 +0.0 + 11 +12.0 + 21 +9.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1.000000000000000E+20 + 24 +1.000000000000000E+20 + 34 +1.000000000000000E+20 + 15 +-1.000000000000000E+20 + 25 +-1.000000000000000E+20 + 35 +-1.000000000000000E+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1B + 0 +LAYOUT + 5 +22 +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 1712 + 72 + 0 + 73 + 0 + 74 + 0 + 7 + + 75 + 0 + 76 + 0 + 77 + 2 + 78 + 300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 + 1 + 71 + 0 + 10 +0.0 + 20 +0.0 + 11 +12.0 + 21 +9.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +30.0 + 24 +49.75 + 34 +0.0 + 15 +130.5 + 25 +163.1318914119703 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1F +331 +29 +0 +ACDBPLACEHOLDER + 5 +F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E + 0 +ENDSEC + 0 +EOF diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xml new file mode 100644 index 00000000..bc505d03 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xml @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xsd b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xsd new file mode 100644 index 00000000..5b6d4bd5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/gdal/vdv452.xsd @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/CH b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/CH new file mode 100644 index 00000000..725328f4 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/CH @@ -0,0 +1,22 @@ +# This init file provides definitions for CH1903 and CH1903/LV03 +# projections using the distortion grids developed by Swisstopo. +# See: https://shop.swisstopo.admin.ch/en/products/geo_software/GIS_info +# +# You'll need to download the grids separately and put in a directory +# scanned by libproj. +# +# Note that an independent effort was made to derive an usable grid +# from the CH1903->CH1903+ grid initially available from the Swisstopo +# website. You can read about this other effort here: +# http://lists.maptools.org/pipermail/proj/2012-February/006093.html +# It may be of interest because the latter was by some reported as being +# more accurate than the former: +# http://lists.maptools.org/pipermail/proj/2012-February/006119.html +# +# This init file uses the official one +# + +origin=Swisstopo +lastupdate=2012-02-27 +# CH1903/LV03 +<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENyx06_ETRS.gsb +no_defs +# CH1903 +<1903> +proj=longlat +ellps=bessel +nadgrids=CHENyx06_ETRS.gsb +no_defs <> diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/GL27 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/GL27 new file mode 100644 index 00000000..73fa9754 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/GL27 @@ -0,0 +1,23 @@ +# SCCSID @(#)GL27 1.1 93/08/25 GIE REL +# Great Lakes Grids + +lastupdate=1993-08-25 + # Lake Erie, Ontario and St. Lawrence River. + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=78d00'W lat_0=44d00'N alpha=55d40' + x_0=-3950000 y_0=-3430000 + no_defs <> + # Lake Huron + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=82d00'W lat_0=43d00'N alpha=350d37' + x_0=1200000 y_0=-3500000 + no_defs <> + # Lake Michigan + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=87d00'W lat_0=44d00'N alpha=15d00' + x_0=-1000000 y_0=-4300000 + no_defs <> + # Lake Superior, Lake of the Woods + proj=omerc ellps=clrk66 k_0=0.9999 + lonc=88d50'0.256"W lat_0=47d12'21.554"N alpha=285d41'42.593" + x_0=9000000 y_0=-1600000 + no_defs <> diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2000 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2000 new file mode 100644 index 00000000..439d1970 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2000 @@ -0,0 +1,24 @@ +# ITRF2000 params are in cm/year, PJ_helmert uses m/year + +version=1.0.0 +origin=ftp://itrf.ensg.ign.fr/pub/itrf/ITRF.TP +lastupdate=2017-07-25 + +# ITRF2000 -> ITRF2005 is only defined the opposite way, so we flip the sign on all +# parameters to get the opposite transformation. Parameters from http://itrf.ign.fr/ITRF_solutions/2005/tp_05-00.php + +proj=helmert +x=-0.0001 +y=0.0008 +z=0.0058 +s=-0.0004 +dx=0.0002 +dy=-0.0001 +dz=0.0018 +ds=-0.00008 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector + + +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector + + +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector + + +proj=helmert +x=0.0127 +y=0.0065 +z=-0.0209 +s=0.00195 +rx=-0.00039 +ry=0.00080 +rz=-0.00114 +dx=-0.0029 +dy=-0.0002 +dz=-0.0006 +ds=0.00001 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0147 +y=0.0135 +z=-0.0139 +s=0.00075 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0267 +y=0.0275 +z=-0.0199 +s=0.00215 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0247 +y=0.0235 +z=-0.0359 +s=0.00245 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0297 +y=0.0475 +z=-0.0739 +s=0.00585 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector + + +proj=helmert +x=0.0247 +y=0.0115 +z=-0.0979 +s=0.00895 +rx=0.0001 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2008 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2008 new file mode 100644 index 00000000..bd5f7cee --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2008 @@ -0,0 +1,94 @@ +# ITRF2008 params are in mm/year, PJ_helmert uses m/year + +version=1.0.0 +origin=http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2008_ITRFs.txt +lastupdate=2017-07-26 + + +proj=helmert +x=-0.002 +y=-0.0009 +z=-0.0047 +s=0.00094 +dx=0.0003 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=-0.0019 +y=-0.0017 +z=-0.0105 +s=0.00134 +dx=0.0001 +dy=0.0001 +dz=-0.0018 +ds=0.00008 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=-0.024 +y=0.0024 +z=-0.00386 +s=0.00341 +rx=-0.00171 +ry=-0.00148 +rz=-0.0003 +dx=-0.0028 +dy=-0.0001 +dz=-0.0024 +ds=0.00009 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0128 +y=0.0046 +z=-0.0412 +s=0.00221 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0248 +y=0.0186 +z=-0.0472 +s=0.00361 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0228 +y=0.0146 +z=-0.0632 +s=0.00391 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0278 +y=0.0386 +z=-0.1012 +s=0.00731 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +proj=helmert +x=0.0228 +y=0.0026 +z=-0.1252 +s=0.01041 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector + + +# ITRF2008 Plate Motion Model parameters +# +# As described in +# +# Altamimi, Z., L. Métivier, and X. Collilieux (2012), ITRF2008 plate motion model, +# J. Geophys. Res., 117, B07402, doi:10.1029/2011JB008930. + + + +proj=helmert +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector + + +proj=helmert +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector + + +proj=helmert +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector + + +proj=helmert +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector + + +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector + + +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector + + +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector + + +proj=helmert +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector + + +proj=helmert +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector + + +proj=helmert +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector + + +proj=helmert +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector + + +proj=helmert +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector + + +proj=helmert +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector + + +proj=helmert +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector + + +# Plate names suffixed by _T (for Translation) that includes the translation +# rates +dx=0.00041 +dy=0.00022 +dz=0.00041 given by Table 2 of the ITRF2008 plate motion model +# paper + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector + + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2014 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2014 new file mode 100644 index 00000000..95f8179b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2014 @@ -0,0 +1,55 @@ +# ITRF2014 params are in mm/year, PJ_helmert uses m/year + +version=1.0.0 +origin=http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2014_ITRFs.txt +lastupdate=2017-07-26 + + +proj=helmert +x=0.0016 +y=0.0019 +z=0.0024 +s=-0.00002 +dz=-0.0001 +ds=0.00003 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0026 +y=0.001 +z=-0.0023 +s=0.00092 +dx=0.0003 +dz=-0.0001 +ds=0.00003 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0007 +y=0.0012 +z=-0.0261 +s=0.00212 +dx=0.0001 +dy=0.0001 +dz=-0.0019 +ds=0.00011 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=-0.0504 +y=0.0033 +z=-0.0602 +s=0.00429 +rx=-0.00281 +ry=-0.00338 +rz=0.0004 +dx=-0.0028 +dy=-0.0001 +dz=-0.0025 +ds=0.00012 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0154 +y=0.0015 +z=-0.0708 +s=0.00309 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0274 +y=0.0155 +z=-0.0768 +s=0.00449 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0254 +y=0.0115 +z=-0.0928 +s=0.00479 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0304 +y=0.0355 +z=-0.1308 +s=0.00819 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + + +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector + +# ITRF2014 Plate Motion Model parameters +# +# As described in +# +# Z. Altamimi et al, 2017, ITRF2014 plate motion model, +# doi: 10.1093/gji/ggx136 + + +proj=helmert +drx=-0.000248 +dry=-0.000324 +drz=0.000675 +convention=position_vector + + +proj=helmert +drx=0.001154 +dry=-0.000136 +drz=0.001444 +convention=position_vector + + +proj=helmert +drx=0.001510 +dry=0.001182 +drz=0.001215 +convention=position_vector + + +proj=helmert +drx=-0.000085 +dry=-0.000531 +drz=0.000770 +convention=position_vector + + +proj=helmert +drx=0.001154 +dry=-0.000005 +drz=0.001454 +convention=position_vector + + +proj=helmert +drx=-0.000333 +dry=-0.001544 +drz=0.001623 +convention=position_vector + + +proj=helmert +drx=0.000024 +dry=-0.000694 +drz=-0.000063 +convention=position_vector + + +proj=helmert +drx=0.000099 +dry=-0.000614 +drz=0.000733 +convention=position_vector + + +proj=helmert +drx=-0.000409 +dry=0.001047 +drz=-0.002169 +convention=position_vector + + +proj=helmert +drx=-0.000270 +dry=-0.000301 +drz=-0.000140 +convention=position_vector + + +proj=helmert +drx=-0.000121 +dry=-0.000794 +drz=0.000884 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2020 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2020 new file mode 100644 index 00000000..45aaa568 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/ITRF2020 @@ -0,0 +1,91 @@ +# ITRF2020 params are in mm/year, PJ_helmert uses m/year + +# Generated with generate_itrf2020.py from EPSG database + + +proj=helmert +x=-0.0014 +y=-0.0009 +z=0.0014 +s=-0.00042 +dy=-0.0001 +dz=0.0002 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0002 +y=0.001 +z=0.0033 +s=-0.00029 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0027 +y=0.0001 +z=-0.0014 +s=0.00065 +dx=0.0003 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=-0.0002 +y=0.0008 +z=-0.0342 +s=0.00225 +dx=0.0001 +dz=-0.0017 +ds=0.00011 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=-0.0658 +y=0.0019 +z=-0.0713 +rx=-0.00336 +ry=-0.00433 +rz=0.00075 +s=0.00447 +dx=-0.0028 +dy=-0.0002 +dz=-0.0023 +drx=-0.00011 +dry=-0.00019 +drz=7e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0145 +y=-0.0019 +z=-0.0859 +rz=0.00036 +s=0.00327 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0265 +y=0.0121 +z=-0.0919 +rz=0.00036 +s=0.00467 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0245 +y=0.0081 +z=-0.1079 +rz=0.00036 +s=0.00497 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0295 +y=0.0321 +z=-0.1459 +rz=0.00036 +s=0.00837 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + + +proj=helmert +x=0.0245 +y=-0.0039 +z=-0.1699 +rx=0.0001 +rz=0.00036 +s=0.01147 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector + +# ITRF2020 Plate Motion Model parameters +# +# As described in https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2023GL106373 +# (and also in https://itrf.ign.fr/docs/solutions/itrf2020/ITRF2020-PMM.dat, but with +# different units) + + +proj=helmert +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector + + +proj=helmert +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector + + +proj=helmert +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector + + +proj=helmert +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector + + +proj=helmert +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector + + +proj=helmert +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector + + +proj=helmert +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector + + +proj=helmert +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector + + +proj=helmert +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector + + +proj=helmert +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector + + +proj=helmert +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector + + +proj=helmert +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector + + +proj=helmert +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector + +# Plate names suffixed by _T (for Translation) that includes the translation +# rates +dx=0.00037 +dy=0.00035 +dz=0.00074 given by Table 2 of the ITRF2020 plate motion model +# paper + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector + + +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json new file mode 100644 index 00000000..d7a6d162 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/deformation_model.schema.json @@ -0,0 +1,582 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Schema for deformation models", + "type": "object", + "properties": { + "file_type": { + "type": "string", + "enum": [ + "deformation_model_master_file" + ], + "description": "File type. Always \"deformation_model_master_file\"" + }, + "format_version": { + "type": "string", + "enum": [ + "1.0" + ] + }, + "name": { + "type": "string", + "description": "A brief descriptive name of the deformation model" + }, + "version": { + "type": "string", + "description": "A string identifying the version of the deformation model. The format for specifying version will be defined by the agency responsible for the deformation model" + }, + "publication_date": { + "$ref": "#/definitions/datetime", + "description": "The date on which this version of the deformation model was published (or possibly the date on which it takes effect?)" + }, + "license": { + "type": "string", + "description": "License under which the model is published" + }, + "description": { + "type": "string", + "description": "A text description of the model" + }, + "authority": { + "type": "object", + "description": "Basic information about the agency responsible for the data set", + "properties": { + "name": { + "type": "string", + "description": "The name of the agency" + }, + "url": { + "type": "string", + "description": "The url of the agency website", + "format": "uri" + }, + "address": { + "type": "string", + "description": "The postal address of the agency" + }, + "email": { + "type": "string", + "description": "An email contact address for the agency", + "format": "email" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "links": { + "type": "array", + "description": "Links to related information", + "items": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL holding the information", + "format": "uri" + }, + "rel": { + "type": "string", + "description": "The relationship to the dataset. Proposed relationships are:\n- \"about\": a web page for human consumption describing the model\n- \"source\": the authoritative source data from which the deformation model is built.\n- \"metadata\": ISO 19115 XML metadata regarding the deformation model." + }, + "type": { + "type": "string", + "description": "MIME type" + }, + "title": { + "type": "string", + "description": "Description of the link" + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + }, + "source_crs": { + "$ref": "#/definitions/crs", + "description": "The coordinate reference system to which the deformation model applies" + }, + "target_crs": { + "$ref": "#/definitions/crs", + "description": "For a time dependent coordinate transformation the coordinate reference system resulting from applying the deformation" + }, + "definition_crs": { + "$ref": "#/definitions/crs", + "description": "The coordinate reference system used to define the component spatial models. This proposal only supports using the same value for the source and definition coordinate reference system." + }, + "reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "A nominal reference epoch of the deformation model. This is not necessarily used to calculate the deformation model - each component defines its own time function." + }, + "uncertainty_reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "The uncertainties of the deformation model are calculated in terms of this epoch. This is described below in the Time functions section." + }, + "horizontal_offset_unit": { + "type": "string", + "enum": [ + "metre", + "degree" + ] + }, + "vertical_offset_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "horizontal_uncertainty_type": { + "type": "string", + "enum": [ + "circular 95% confidence limit" + ] + }, + "horizontal_uncertainty_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "vertical_uncertainty_type": { + "type": "string", + "enum": [ + "95% confidence limit" + ] + }, + "vertical_uncertainty_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "horizontal_offset_method": { + "type": "string", + "description": "Defines how the horizontal offsets are applied to geographic coordinates", + "enum": [ + "addition", + "geocentric" + ] + }, + "extent": { + "$ref": "#/definitions/extent", + "description": "Defines the region within which the deformation model is defined. It cannot be calculated outside this region. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" + }, + "time_extent": { + "type": "object", + "description": "Defines the range of times for which the model is valid, specified by a first and a last value. The deformation model is undefined for dates outside this range.", + "properties": { + "first": { + "$ref": "#/definitions/datetime" + }, + "last": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "first", + "last" + ], + "additionalProperties": false + }, + "components": { + "type": "array", + "items": { + "$ref": "#/definitions/component" + } + } + }, + "required": [ + "file_type", + "format_version", + "source_crs", + "target_crs", + "definition_crs", + "extent", + "time_extent", + "components" + ], + "additionalProperties": false, + "definitions": { + "component": { + "type": "object", + "definition": "A component describes an aspect of the deformation, such as glacial isostatic adjustment, secular deformation, earthquakes, etc.", + "properties": { + "description": { + "type": "string", + "description": "A text description of this component of the model" + }, + "extent": { + "$ref": "#/definitions/extent", + "description": "The region within the component is defined. Outside this region the component evaluates to 0. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" + }, + "displacement_type": { + "type": "string", + "description": "The displacement parameters defined by the model. The \"none\" option allows for a component which defines uncertainty with different grids to those defining displacement", + "enum": [ + "none", + "horizontal", + "vertical", + "3d" + ] + }, + "uncertainty_type": { + "type": "string", + "description": "The uncertainty parameters defined by the model", + "enum": [ + "none", + "horizontal", + "vertical", + "3d" + ] + }, + "horizontal_uncertainty": { + "type": "number", + "description": "The horizontal uncertainty to use if it is not defined explicitly in the spatial model" + }, + "vertical_uncertainty": { + "type": "number", + "description": "The vertical uncertainty to use if it is not defined explicitly in the spatial model" + }, + "spatial_model": { + "type": "object", + "description": "Defines the spatial model", + "properties": { + "type": { + "type": "string", + "description": "Specifies the type of the spatial model data file. Initially it is proposed that only GeoTIFF is supported", + "enum": [ + "GeoTIFF" + ] + }, + "interpolation_method": { + "type": "string", + "description": "Interpolation method", + "enum": [ + "bilinear", + "geocentric_bilinear" + ] + }, + "filename": { + "type": "string", + "description": "Specifies location of the spatial model GeoTIFF file relative to this JSON file" + }, + "md5_checksum": { + "type": "string", + "description": "A hex encoded MD5 checksum of the grid file that can be used to validate that it is the correct version of the file" + } + }, + "required": [ + "type", + "interpolation_method", + "filename" + ], + "additionalProperties": false + }, + "time_function": { + "$ref": "#/definitions/time_function" + } + }, + "required": [ + "description", + "extent", + "displacement_type", + "spatial_model", + "time_function" + ], + "additionalProperties": false + }, + "crs": { + "type": "string", + "pattern": "^[a-zA-Z]+:[a-zA-Z0-9]+$" + }, + "datetime": { + "type": "string", + "format": "date-time", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" + }, + "extent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "bbox" + ] + }, + "parameters": { + "type": "object", + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + } + } + } + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function": { + "description": "Function describing a multiplicative factor to apply to the spatial_model depending on the time", + "oneOf": [ + { + "$ref": "#/definitions/time_function_constant" + }, + { + "$ref": "#/definitions/time_function_velocity" + }, + { + "$ref": "#/definitions/time_function_step" + }, + { + "$ref": "#/definitions/time_function_reverse_step" + }, + { + "$ref": "#/definitions/time_function_piecewise" + }, + { + "$ref": "#/definitions/time_function_exponential" + } + ] + }, + "time_function_constant": { + "description": "The valuation of this function is 1 at any epoch", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "constant" + ] + }, + "parameters": { + "type": "object", + "properties": { + }, + "additionalProperties": false + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + "time_function_velocity": { + "description": "The valuation of this function is 0 at reference_epoch, and proportional to the time difference to it at other times", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "velocity" + ] + }, + "parameters": { + "type": "object", + "properties": { + "reference_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "reference_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_step": { + "description": "The valuation of this function is 0 before step_epoch, and 1 starting from it", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "step" + ] + }, + "parameters": { + "type": "object", + "properties": { + "step_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "step_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_reverse_step": { + "description": "The valuation of this function is 1 before step_epoch, and 0 starting from it", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "reverse_step" + ] + }, + "parameters": { + "type": "object", + "properties": { + "step_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "step_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_piecewise": { + "description": "Piecewise time function", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "piecewise" + ] + }, + "parameters": { + "type": "object", + "properties": { + "before_first": { + "type": "string", + "description": "Defines the behaviour of the function before the first defined epoch", + "enum": [ + "zero", + "constant", + "linear" + ] + }, + "after_last": { + "type": "string", + "description": "Defines the behaviour of the function after the last defined epoch", + "enum": [ + "zero", + "constant", + "linear" + ] + }, + "model": { + "type": "array", + "description": "A sorted array data points each defined by two elements, \"epoch\" defines the date/time of the data point, and \"scale_factor\" is the corresponding function value. The array is sorted in order of increasing epoch. Note: where the time function includes a step it is represented by two consecutive data points with the same epoch. The first defines the scale factor that applies before the epoch and the second the scale factor that applies after the epoch", + "items": { + "type": "object", + "properties": { + "epoch": { + "$ref": "#/definitions/datetime" + }, + "scale_factor": { + "type": "number" + } + }, + "required": [ + "epoch", + "scale_factor" + ], + "additionalProperties": false + }, + "minItems": 2 + } + }, + "required": [ + "before_first", + "after_last", + "model" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_exponential": { + "description": "The valuation of this function is an exponential function with a time-based relaxation constant", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "exponential" + ] + }, + "parameters": { + "type": "object", + "properties": { + "reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "The date/time at which the exponential decay starts" + }, + "end_epoch": { + "$ref": "#/definitions/datetime", + "description": "The date/time at which the exponential decay ends (optional)" + }, + "relaxation_constant": { + "type": "number", + "description": "Relaxation constant in years" + }, + "before_scale_factor": { + "type": "number", + "description": "The scale factor that applies before the reference epoch" + }, + "initial_scale_factor": { + "type": "number", + "description": "The initial scale factor" + }, + "final_scale_factor": { + "type": "number", + "description": "The scale factor the exponential function approaches" + } + }, + "required": [ + "reference_epoch", + "relaxation_constant", + "before_scale_factor", + "initial_scale_factor", + "final_scale_factor" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad.lst b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad.lst new file mode 100644 index 00000000..cc427722 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad.lst @@ -0,0 +1,142 @@ + Listing of State Plane North American Datum Zones + + NGS zone number + State and zone 1927 1983 + +Alabama east .................. 101 101 +Alabama west .................. 102 102 +Alaska zone no. 1 ............. 5001 5001 +Alaska zone no. 2 ............. 5002 5002 +Alaska zone no. 3 ............. 5003 5003 +Alaska zone no. 4 ............. 5004 5004 +Alaska zone no. 5 ............. 5005 5005 +Alaska zone no. 6 ............. 5006 5006 +Alaska zone no. 7 ............. 5007 5007 +Alaska zone no. 8 ............. 5008 5008 +Alaska zone no. 9 ............. 5009 5009 +Alaska zone no. 10 ............ 5010 5010 +American Samoa ................ 5300 +Arizona central ............... 202 202 +Arizona east .................. 201 201 +Arizona west .................. 203 203 +Arkansas north ................ 301 301 +Arkansas south ................ 302 302 +California I .................. 401 401 +California II ................. 402 402 +California III ................ 403 403 +California IV ................. 404 404 +California V .................. 405 405 +California VI ................. 406 406 +California VII ................ 407 +Colorado central .............. 502 502 +Colorado north ................ 501 501 +Colorado south ................ 503 503 +Connecticut ................... 600 600 +Delaware ...................... 700 700 +Florida east .................. 901 901 +Florida north ................. 903 903 +Florida west .................. 902 902 +Georgia east .................. 1001 1001 +Georgia west .................. 1002 1002 +Guam Island ................... 5400 +Hawaii 1 ...................... 5101 5101 +Hawaii 2 ...................... 5102 5102 +Hawaii 3 ...................... 5103 5103 +Hawaii 4 ...................... 5104 5104 +Hawaii 5 ...................... 5105 5105 +Idaho central ................. 1102 1102 +Idaho east .................... 1101 1101 +Idaho west .................... 1103 1103 +Illinois east ................. 1201 1201 +Illinois west ................. 1202 1202 +Indiana east .................. 1301 1301 +Indiana west .................. 1302 1302 +Iowa north .................... 1401 1401 +Iowa south .................... 1402 1402 +Kansas north .................. 1501 1501 +Kansas south .................. 1502 1502 +Kentucky north ................ 1601 1601 +Kentucky south ................ 1602 1602 +Louisiana north ............... 1701 1701 +Louisiana offshore ............ 1703 1703 +Louisiana south ............... 1702 1702 +Maine east .................... 1801 1801 +Maine west .................... 1802 1802 +Maryland ...................... 1900 1900 +Massachusetts island .......... 2002 2002 +Massachusetts mainland ........ 2001 2001 +Michigan central/l ............ 2112 2112 current +Michigan central/m ............ 2102 old +Michigan east ................. 2101 old +Michigan north ................ 2111 2111 current +Michigan south ................ 2113 2113 current +Michigan west ................. 2103 old +Minnesota central ............. 2202 2202 +Minnesota north ............... 2201 2201 +Minnesota south ............... 2203 2203 +Mississippi east .............. 2301 2301 +Mississippi west .............. 2302 2302 +Missouri central .............. 2402 2402 +Missouri east ................. 2401 2401 +Missouri west ................. 2403 2403 +Montana ....................... 2500 +Montana central ............... 2502 +Montana north ................. 2501 +Montana south ................. 2503 +Nebraska ...................... 2600 +Nebraska north ................ 2601 +Nebraska south ................ 2602 +Nevada central ................ 2702 2702 +Nevada east ................... 2701 2701 +Nevada west ................... 2703 2703 +New hampshire ................. 2800 2800 +New jersey .................... 2900 2900 +New mexico central ............ 3002 3002 +New mexico east ............... 3001 3001 +New mexico west ............... 3003 3003 +New york central .............. 3102 3102 +New york east ................. 3101 3101 +New york long island .......... 3104 3104 +New york west ................. 3103 3103 +North carolina ................ 3200 3200 +North dakota north ............ 3301 3301 +North dakota south ............ 3302 3302 +Ohio north .................... 3401 3401 +Ohio south .................... 3402 3402 +Oklahoma north ................ 3501 3501 +Oklahoma south ................ 3502 3502 +Oregon north .................. 3601 3601 +Oregon south .................. 3602 3602 +Pennsylvania north ............ 3701 3701 +Pennsylvania south ............ 3702 3702 +Puerto Rico, Virgin Islands ... 5201 5200 +Rhode Island .................. 3800 3800 +South Carolina ................ 3900 +South Carolina north .......... 3901 +South Carolina south .......... 3902 +South Dakota north ............ 4001 4001 +South Dakota south ............ 4002 4002 +Tennessee ..................... 4100 4100 +Texas central ................. 4203 4203 +Texas north ................... 4201 4201 +Texas north central ........... 4202 4202 +Texas south ................... 4205 4205 +Texas south central ........... 4204 4204 +Utah central .................. 4302 4302 +Utah north .................... 4301 4301 +Utah south .................... 4303 4303 +Vermont ....................... 4400 4400 +Virgin Islands, St. Croix ..... 5202 +Virginia north ................ 4501 4501 +Virginia south ................ 4502 4502 +Washington north .............. 4601 4601 +Washington south .............. 4602 4602 +West Virginia north ........... 4701 4701 +West Virginia south ........... 4702 4702 +Wisconsin central ............. 4802 4802 +Wisconsin north ............... 4801 4801 +Wisconsin south ............... 4803 4803 +Wyoming east .................. 4901 4901 +Wyoming east central .......... 4902 4902 +Wyoming west .................. 4904 4904 +Wyoming west central .......... 4903 4903 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad27 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad27 new file mode 100644 index 00000000..c5e43962 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad27 @@ -0,0 +1,810 @@ +# SCCSID @(#)nad27 4.1 92/12/20 GIE +# proj +init files for: +# +# State Plane Coordinate Systems, +# North American Datum 1927 + + +lastupdate=1992-12-20 +# 101: alabama east: nad27 +<101> proj=tmerc datum=NAD27 +lon_0=-85d50 lat_0=30d30 k=.99996 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 102: alabama west: nad27 +<102> proj=tmerc datum=NAD27 +lon_0=-87d30 lat_0=30 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5010: alaska zone no. 10: nad27 +<5010> proj=lcc datum=NAD27 +lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 +x_0=914401.8288036576 y_0=0 +no_defs <> + +# 5300: american samoa: nad27 +<5300> proj=lcc datum=NAD27 +lon_0=-170 lat_1=-14d16 lat_2=-14d16 lat_0=-14d16 +x_0=152400.3048006096 y_0=95169.31165862332 +no_defs <> + +# 201: arizona east: nad27 +<201> proj=tmerc datum=NAD27 +lon_0=-110d10 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 202: arizona central: nad27 +<202> proj=tmerc datum=NAD27 +lon_0=-111d55 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 203: arizona west: nad27 +<203> proj=tmerc datum=NAD27 +lon_0=-113d45 lat_0=31 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 301: arkansas north: nad27 +<301> proj=lcc datum=NAD27 +lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 302: arkansas south: nad27 +<302> proj=lcc datum=NAD27 +lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 401: california i: nad27 +<401> proj=lcc datum=NAD27 +lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 402: california ii: nad27 +<402> proj=lcc datum=NAD27 +lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 403: california iii: nad27 +<403> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 404: california iv: nad27 +<404> proj=lcc datum=NAD27 +lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 405: california v: nad27 +<405> proj=lcc datum=NAD27 +lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 406: california vi: nad27 +<406> proj=lcc datum=NAD27 +lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 407: california vii: nad27 +<407> proj=lcc datum=NAD27 +lon_0=-118d20 lat_1=34d25 lat_2=33d52 lat_0=34d8 +x_0=1276106.450596901 y_0=1268253.006858014 +no_defs <> + +# 501: colorado north: nad27 +<501> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 502: colorado central: nad27 +<502> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 503: colorado south: nad27 +<503> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 600: connecticut ---: nad27 +<600> proj=lcc datum=NAD27 +lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 700: delaware ---: nad27 +<700> proj=tmerc datum=NAD27 +lon_0=-75d25 lat_0=38 k=.999995 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 901: florida east: nad27 +<901> proj=tmerc datum=NAD27 +lon_0=-81 lat_0=24d20 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 902: florida west: nad27 +<902> proj=tmerc datum=NAD27 +lon_0=-82 lat_0=24d20 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 903: florida north: nad27 +<903> proj=lcc datum=NAD27 +lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1001: georgia east: nad27 +<1001> proj=tmerc datum=NAD27 +lon_0=-82d10 lat_0=30 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1002: georgia west: nad27 +<1002> proj=tmerc datum=NAD27 +lon_0=-84d10 lat_0=30 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5101: hawaii 1: nad27 +<5101> proj=tmerc datum=NAD27 +lon_0=-155d30 lat_0=18d50 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5102: hawaii 2: nad27 +<5102> proj=tmerc datum=NAD27 +lon_0=-156d40 lat_0=20d20 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5103: hawaii 3: nad27 +<5103> proj=tmerc datum=NAD27 +lon_0=-158 lat_0=21d10 k=.99999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5104: hawaii 4: nad27 +<5104> proj=tmerc datum=NAD27 +lon_0=-159d30 lat_0=21d50 k=.99999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5105: hawaii 5: nad27 +<5105> proj=tmerc datum=NAD27 +lon_0=-160d10 lat_0=21d40 k=1 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1101: idaho east: nad27 +<1101> proj=tmerc datum=NAD27 +lon_0=-112d10 lat_0=41d40 k=.9999473684210526 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1102: idaho central: nad27 +<1102> proj=tmerc datum=NAD27 +lon_0=-114 lat_0=41d40 k=.9999473684210526 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1103: idaho west: nad27 +<1103> proj=tmerc datum=NAD27 +lon_0=-115d45 lat_0=41d40 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1201: illinois east: nad27 +<1201> proj=tmerc datum=NAD27 +lon_0=-88d20 lat_0=36d40 k=.999975 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1202: illinois west: nad27 +<1202> proj=tmerc datum=NAD27 +lon_0=-90d10 lat_0=36d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1301: indiana east: nad27 +<1301> proj=tmerc datum=NAD27 +lon_0=-85d40 lat_0=37d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1302: indiana west: nad27 +<1302> proj=tmerc datum=NAD27 +lon_0=-87d5 lat_0=37d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1401: iowa north: nad27 +<1401> proj=lcc datum=NAD27 +lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1402: iowa south: nad27 +<1402> proj=lcc datum=NAD27 +lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1501: kansas north: nad27 +<1501> proj=lcc datum=NAD27 +lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1502: kansas south: nad27 +<1502> proj=lcc datum=NAD27 +lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1601: kentucky north: nad27 +<1601> proj=lcc datum=NAD27 +lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1602: kentucky south: nad27 +<1602> proj=lcc datum=NAD27 +lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1701: louisiana north: nad27 +<1701> proj=lcc datum=NAD27 +lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1702: louisiana south: nad27 +<1702> proj=lcc datum=NAD27 +lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1703: louisiana offshore: nad27 +<1703> proj=lcc datum=NAD27 +lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1801: maine east: nad27 +<1801> proj=tmerc datum=NAD27 +lon_0=-68d30 lat_0=43d50 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1802: maine west: nad27 +<1802> proj=tmerc datum=NAD27 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1900: maryland ---: nad27 +<1900> proj=lcc datum=NAD27 +lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d50 +x_0=243840.4876809754 y_0=0 +no_defs <> + +# 2001: massachusetts mainland: nad27 +<2001> proj=lcc datum=NAD27 +lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 2002: massachusetts island: nad27 +<2002> proj=lcc datum=NAD27 +lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 +x_0=60960.12192024384 y_0=0 +no_defs <> + +# 2101: michigan east: nad27 +<2101> proj=tmerc datum=NAD27 +lon_0=-83d40 lat_0=41d30 k=.9999428571428571 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2102: michigan central/m: nad27 +<2102> proj=tmerc datum=NAD27 +lon_0=-85d45 lat_0=41d30 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2103: michigan west: nad27 +<2103> proj=tmerc datum=NAD27 +lon_0=-88d45 lat_0=41d30 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2111: michigan north: nad27 +<2111> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2112: michigan central/l: nad27 +<2112> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-84d20 lat_1=45d42 lat_2=44d11 lat_0=43d19 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2113: michigan south: nad27 +<2113> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-84d20 lat_1=43d40 lat_2=42d6 lat_0=41d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2201: minnesota north: nad27 +<2201> proj=lcc datum=NAD27 +lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2202: minnesota central: nad27 +<2202> proj=lcc datum=NAD27 +lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2203: minnesota south: nad27 +<2203> proj=lcc datum=NAD27 +lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2301: mississippi east: nad27 +<2301> proj=tmerc datum=NAD27 +lon_0=-88d50 lat_0=29d40 k=.99996 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2302: mississippi west: nad27 +<2302> proj=tmerc datum=NAD27 +lon_0=-90d20 lat_0=30d30 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2401: missouri east: nad27 +<2401> proj=tmerc datum=NAD27 +lon_0=-90d30 lat_0=35d50 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2402: missouri central: nad27 +<2402> proj=tmerc datum=NAD27 +lon_0=-92d30 lat_0=35d50 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2403: missouri west: nad27 +<2403> proj=tmerc datum=NAD27 +lon_0=-94d30 lat_0=36d10 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2501: montana north: nad27 +<2501> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=48d43 lat_2=47d51 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2502: montana central: nad27 +<2502> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=47d53 lat_2=46d27 lat_0=45d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2503: montana south: nad27 +<2503> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=46d24 lat_2=44d52 lat_0=44 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2601: nebraska north: nad27 +<2601> proj=lcc datum=NAD27 +lon_0=-100 lat_1=42d49 lat_2=41d51 lat_0=41d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2602: nebraska south: nad27 +<2602> proj=lcc datum=NAD27 +lon_0=-99d30 lat_1=41d43 lat_2=40d17 lat_0=39d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2701: nevada east: nad27 +<2701> proj=tmerc datum=NAD27 +lon_0=-115d35 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2702: nevada central: nad27 +<2702> proj=tmerc datum=NAD27 +lon_0=-116d40 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2703: nevada west: nad27 +<2703> proj=tmerc datum=NAD27 +lon_0=-118d35 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2800: new hampshire ---: nad27 +<2800> proj=tmerc datum=NAD27 +lon_0=-71d40 lat_0=42d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2900: new jersey ---: nad27 +<2900> proj=tmerc datum=NAD27 +lon_0=-74d40 lat_0=38d50 k=.999975 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3001: new mexico east: nad27 +<3001> proj=tmerc datum=NAD27 +lon_0=-104d20 lat_0=31 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3002: new mexico central: nad27 +<3002> proj=tmerc datum=NAD27 +lon_0=-106d15 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3003: new mexico west: nad27 +<3003> proj=tmerc datum=NAD27 +lon_0=-107d50 lat_0=31 k=.9999166666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3101: new york east: nad27 +<3101> proj=tmerc datum=NAD27 +lon_0=-74d20 lat_0=40 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3102: new york central: nad27 +<3102> proj=tmerc datum=NAD27 +lon_0=-76d35 lat_0=40 k=.9999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3103: new york west: nad27 +<3103> proj=tmerc datum=NAD27 +lon_0=-78d35 lat_0=40 k=.9999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3104: new york long island: nad27 +<3104> proj=lcc datum=NAD27 +lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d30 +x_0=609601.2192024384 y_0=30480.06096012192 +no_defs <> + +# 3200: north carolina ---: nad27 +<3200> proj=lcc datum=NAD27 +lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3301: north dakota north: nad27 +<3301> proj=lcc datum=NAD27 +lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3302: north dakota south: nad27 +<3302> proj=lcc datum=NAD27 +lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3401: ohio north: nad27 +<3401> proj=lcc datum=NAD27 +lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3402: ohio south: nad27 +<3402> proj=lcc datum=NAD27 +lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3501: oklahoma north: nad27 +<3501> proj=lcc datum=NAD27 +lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3502: oklahoma south: nad27 +<3502> proj=lcc datum=NAD27 +lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3601: oregon north: nad27 +<3601> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3602: oregon south: nad27 +<3602> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3701: pennsylvania north: nad27 +<3701> proj=lcc datum=NAD27 +lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3702: pennsylvania south: nad27 +<3702> proj=lcc datum=NAD27 +lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3800: rhode island ---: nad27 +<3800> proj=tmerc datum=NAD27 +lon_0=-71d30 lat_0=41d5 k=.99999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3901: south carolina north: nad27 +<3901> proj=lcc datum=NAD27 +lon_0=-81 lat_1=34d58 lat_2=33d46 lat_0=33 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3902: south carolina south: nad27 +<3902> proj=lcc datum=NAD27 +lon_0=-81 lat_1=33d40 lat_2=32d20 lat_0=31d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4001: south dakota north: nad27 +<4001> proj=lcc datum=NAD27 +lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4002: south dakota south: nad27 +<4002> proj=lcc datum=NAD27 +lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4100: tennessee ---: nad27 +<4100> proj=lcc datum=NAD27 +lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d40 +x_0=609601.2192024384 y_0=30480.06096012192 +no_defs <> + +# 4201: texas north: nad27 +<4201> proj=lcc datum=NAD27 +lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4202: texas north central: nad27 +<4202> proj=lcc datum=NAD27 +lon_0=-97d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4203: texas central: nad27 +<4203> proj=lcc datum=NAD27 +lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4204: texas south central: nad27 +<4204> proj=lcc datum=NAD27 +lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4205: texas south: nad27 +<4205> proj=lcc datum=NAD27 +lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4301: utah north: nad27 +<4301> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4302: utah central: nad27 +<4302> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4303: utah south: nad27 +<4303> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4400: vermont ---: nad27 +<4400> proj=tmerc datum=NAD27 +lon_0=-72d30 lat_0=42d30 k=.9999642857142857 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4501: virginia north: nad27 +<4501> proj=lcc datum=NAD27 +lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4502: virginia south: nad27 +<4502> proj=lcc datum=NAD27 +lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4601: washington north: nad27 +<4601> proj=lcc datum=NAD27 +lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4602: washington south: nad27 +<4602> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4701: west virginia north: nad27 +<4701> proj=lcc datum=NAD27 +lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4702: west virginia south: nad27 +<4702> proj=lcc datum=NAD27 +lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4801: wisconsin north: nad27 +<4801> proj=lcc datum=NAD27 +lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4802: wisconsin central: nad27 +<4802> proj=lcc datum=NAD27 +lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4803: wisconsin south: nad27 +<4803> proj=lcc datum=NAD27 +lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4901: wyoming east: nad27 +<4901> proj=tmerc datum=NAD27 +lon_0=-105d10 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4902: wyoming east central: nad27 +<4902> proj=tmerc datum=NAD27 +lon_0=-107d20 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4903: wyoming west central: nad27 +<4903> proj=tmerc datum=NAD27 +lon_0=-108d45 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4904: wyoming west: nad27 +<4904> proj=tmerc datum=NAD27 +lon_0=-110d5 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5001: alaska zone no. 1: nad27 +<5001> proj=omerc datum=NAD27 +k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 +x_0=818585.5672270928 y_0=575219.2451072642 +no_defs <> + +# 5002: alaska zone no. 2: nad27 +<5002> proj=tmerc datum=NAD27 +lon_0=-142 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5003: alaska zone no. 3: nad27 +<5003> proj=tmerc datum=NAD27 +lon_0=-146 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5004: alaska zone no. 4: nad27 +<5004> proj=tmerc datum=NAD27 +lon_0=-150 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5005: alaska zone no. 5: nad27 +<5005> proj=tmerc datum=NAD27 +lon_0=-154 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5006: alaska zone no. 6: nad27 +<5006> proj=tmerc datum=NAD27 +lon_0=-158 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5007: alaska zone no. 7: nad27 +<5007> proj=tmerc datum=NAD27 +lon_0=-162 lat_0=54 k=.9999 +x_0=213360.4267208534 y_0=0 +no_defs <> + +# 5008: alaska zone no. 8: nad27 +<5008> proj=tmerc datum=NAD27 +lon_0=-166 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5009: alaska zone no. 9: nad27 +<5009> proj=tmerc datum=NAD27 +lon_0=-170 lat_0=54 k=.9999 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 5201: puerto rico and virgin islands: nad27 +<5201> proj=lcc datum=NAD27 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5202: virgin islands st. croix: nad27 +<5202> proj=lcc datum=NAD27 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=152400.3048006096 y_0=30480.06096012192 +no_defs <> + +# 5400: guam island: nad27 +<5400> proj=poly datum=NAD27 +x_0=50000 y_0=50000 lon_0=144d44'55.50254 lat_0=13d28'20.87887 +no_defs <> + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad83 b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad83 new file mode 100644 index 00000000..1b65f519 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/nad83 @@ -0,0 +1,745 @@ +# SCCSID @(#)nad83 4.1 92/12/20 GIE +# proj +init files for: +# +# State Plane Coordinate Systems, +# North American Datum 1983 + + +lastupdate=1992-12-20 +# 101: alabama east: nad83 +<101> proj=tmerc datum=NAD83 +lon_0=-85d50 lat_0=30d30 k=.99996 +x_0=200000 y_0=0 +no_defs <> + +# 102: alabama west: nad83 +<102> proj=tmerc datum=NAD83 +lon_0=-87d30 lat_0=30 k=.9999333333333333 +x_0=600000 y_0=0 +no_defs <> + +# 5010: alaska zone no. 10: nad83 +<5010> proj=lcc datum=NAD83 +lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 +x_0=1000000 y_0=0 +no_defs <> + +# 201: arizona east: nad83 +<201> proj=tmerc datum=NAD83 +lon_0=-110d10 lat_0=31 k=.9999 +x_0=213360 y_0=0 +no_defs <> + +# 202: arizona central: nad83 +<202> proj=tmerc datum=NAD83 +lon_0=-111d55 lat_0=31 k=.9999 +x_0=213360 y_0=0 +no_defs <> + +# 203: arizona west: nad83 +<203> proj=tmerc datum=NAD83 +lon_0=-113d45 lat_0=31 k=.9999333333333333 +x_0=213360 y_0=0 +no_defs <> + +# 301: arkansas north: nad83 +<301> proj=lcc datum=NAD83 +lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 +x_0=400000 y_0=0 +no_defs <> + +# 302: arkansas south: nad83 +<302> proj=lcc datum=NAD83 +lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 +x_0=400000 y_0=400000 +no_defs <> + +# 401: california i: nad83 +<401> proj=lcc datum=NAD83 +lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 +x_0=2000000 y_0=500000 +no_defs <> + +# 402: california ii: nad83 +<402> proj=lcc datum=NAD83 +lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 +x_0=2000000 y_0=500000 +no_defs <> + +# 403: california iii: nad83 +<403> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 +x_0=2000000 y_0=500000 +no_defs <> + +# 404: california iv: nad83 +<404> proj=lcc datum=NAD83 +lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 +x_0=2000000 y_0=500000 +no_defs <> + +# 405: california v: nad83 +<405> proj=lcc datum=NAD83 +lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 +x_0=2000000 y_0=500000 +no_defs <> + +# 406: california vi: nad83 +<406> proj=lcc datum=NAD83 +lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 +x_0=2000000 y_0=500000 +no_defs <> + +# 501: colorado north: nad83 +<501> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 502: colorado central: nad83 +<502> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 503: colorado south: nad83 +<503> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 600: connecticut ---: nad83 +<600> proj=lcc datum=NAD83 +lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 +x_0=304800.6096 y_0=152400.3048 +no_defs <> + +# 700: delaware ---: nad83 +<700> proj=tmerc datum=NAD83 +lon_0=-75d25 lat_0=38 k=.999995 +x_0=200000 y_0=0 +no_defs <> + +# 901: florida east: nad83 +<901> proj=tmerc datum=NAD83 +lon_0=-81 lat_0=24d20 k=.9999411764705882 +x_0=200000 y_0=0 +no_defs <> + +# 902: florida west: nad83 +<902> proj=tmerc datum=NAD83 +lon_0=-82 lat_0=24d20 k=.9999411764705882 +x_0=200000 y_0=0 +no_defs <> + +# 903: florida north: nad83 +<903> proj=lcc datum=NAD83 +lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 +x_0=600000 y_0=0 +no_defs <> + +# 1001: georgia east: nad83 +<1001> proj=tmerc datum=NAD83 +lon_0=-82d10 lat_0=30 k=.9999 +x_0=200000 y_0=0 +no_defs <> + +# 1002: georgia west: nad83 +<1002> proj=tmerc datum=NAD83 +lon_0=-84d10 lat_0=30 k=.9999 +x_0=700000 y_0=0 +no_defs <> + +# 5101: hawaii 1: nad83 +<5101> proj=tmerc datum=NAD83 +lon_0=-155d30 lat_0=18d50 k=.9999666666666667 +x_0=500000 y_0=0 +no_defs <> + +# 5102: hawaii 2: nad83 +<5102> proj=tmerc datum=NAD83 +lon_0=-156d40 lat_0=20d20 k=.9999666666666667 +x_0=500000 y_0=0 +no_defs <> + +# 5103: hawaii 3: nad83 +<5103> proj=tmerc datum=NAD83 +lon_0=-158 lat_0=21d10 k=.99999 +x_0=500000 y_0=0 +no_defs <> + +# 5104: hawaii 4: nad83 +<5104> proj=tmerc datum=NAD83 +lon_0=-159d30 lat_0=21d50 k=.99999 +x_0=500000 y_0=0 +no_defs <> + +# 5105: hawaii 5: nad83 +<5105> proj=tmerc datum=NAD83 +lon_0=-160d10 lat_0=21d40 k=1 +x_0=500000 y_0=0 +no_defs <> + +# 1101: idaho east: nad83 +<1101> proj=tmerc datum=NAD83 +lon_0=-112d10 lat_0=41d40 k=.9999473684210526 +x_0=200000 y_0=0 +no_defs <> + +# 1102: idaho central: nad83 +<1102> proj=tmerc datum=NAD83 +lon_0=-114 lat_0=41d40 k=.9999473684210526 +x_0=500000 y_0=0 +no_defs <> + +# 1103: idaho west: nad83 +<1103> proj=tmerc datum=NAD83 +lon_0=-115d45 lat_0=41d40 k=.9999333333333333 +x_0=800000 y_0=0 +no_defs <> + +# 1201: illinois east: nad83 +<1201> proj=tmerc datum=NAD83 +lon_0=-88d20 lat_0=36d40 k=.999975 +x_0=300000 y_0=0 +no_defs <> + +# 1202: illinois west: nad83 +<1202> proj=tmerc datum=NAD83 +lon_0=-90d10 lat_0=36d40 k=.9999411764705882 +x_0=700000 y_0=0 +no_defs <> + +# 1301: indiana east: nad83 +<1301> proj=tmerc datum=NAD83 +lon_0=-85d40 lat_0=37d30 k=.9999666666666667 +x_0=100000 y_0=250000 +no_defs <> + +# 1302: indiana west: nad83 +<1302> proj=tmerc datum=NAD83 +lon_0=-87d5 lat_0=37d30 k=.9999666666666667 +x_0=900000 y_0=250000 +no_defs <> + +# 1401: iowa north: nad83 +<1401> proj=lcc datum=NAD83 +lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 +x_0=1500000 y_0=1000000 +no_defs <> + +# 1402: iowa south: nad83 +<1402> proj=lcc datum=NAD83 +lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 +x_0=500000 y_0=0 +no_defs <> + +# 1501: kansas north: nad83 +<1501> proj=lcc datum=NAD83 +lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 +x_0=400000 y_0=0 +no_defs <> + +# 1502: kansas south: nad83 +<1502> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 +x_0=400000 y_0=400000 +no_defs <> + +# 1601: kentucky north: nad83 +<1601> proj=lcc datum=NAD83 +lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 +x_0=500000 y_0=0 +no_defs <> + +# 1602: kentucky south: nad83 +<1602> proj=lcc datum=NAD83 +lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 +x_0=500000 y_0=500000 +no_defs <> + +# 1701: louisiana north: nad83 +<1701> proj=lcc datum=NAD83 +lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1702: louisiana south: nad83 +<1702> proj=lcc datum=NAD83 +lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1703: louisiana offshore: nad83 +<1703> proj=lcc datum=NAD83 +lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1801: maine east: nad83 +<1801> proj=tmerc datum=NAD83 +lon_0=-68d30 lat_0=43d40 k=.9999 +x_0=300000 y_0=0 +no_defs <> + +# 1802: maine west: nad83 +<1802> proj=tmerc datum=NAD83 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 +x_0=900000 y_0=0 +no_defs <> + +# 1900: maryland ---: nad83 +<1900> proj=lcc datum=NAD83 +lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d40 +x_0=400000 y_0=0 +no_defs <> + +# 2001: massachusetts mainland: nad83 +<2001> proj=lcc datum=NAD83 +lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 +x_0=200000 y_0=750000 +no_defs <> + +# 2002: massachusetts island: nad83 +<2002> proj=lcc datum=NAD83 +lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 +x_0=500000 y_0=0 +no_defs <> + +# 2111: michigan north: nad83 +<2111> proj=lcc datum=NAD83 +lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 +x_0=8000000 y_0=0 +no_defs <> + +# 2112: michigan central/l: nad83 +<2112> proj=lcc datum=NAD83 +lon_0=-84d22 lat_1=45d42 lat_2=44d11 lat_0=43d19 +x_0=6000000 y_0=0 +no_defs <> + +# 2113: michigan south: nad83 +<2113> proj=lcc datum=NAD83 +lon_0=-84d22 lat_1=43d40 lat_2=42d6 lat_0=41d30 +x_0=4000000 y_0=0 +no_defs <> + +# 2201: minnesota north: nad83 +<2201> proj=lcc datum=NAD83 +lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 +x_0=800000 y_0=100000 +no_defs <> + +# 2202: minnesota central: nad83 +<2202> proj=lcc datum=NAD83 +lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 +x_0=800000 y_0=100000 +no_defs <> + +# 2203: minnesota south: nad83 +<2203> proj=lcc datum=NAD83 +lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 +x_0=800000 y_0=100000 +no_defs <> + +# 2301: mississippi east: nad83 +<2301> proj=tmerc datum=NAD83 +lon_0=-88d50 lat_0=29d30 k=.99995 +x_0=300000 y_0=0 +no_defs <> + +# 2302: mississippi west: nad83 +<2302> proj=tmerc datum=NAD83 +lon_0=-90d20 lat_0=29d30 k=.99995 +x_0=700000 y_0=0 +no_defs <> + +# 2401: missouri east: nad83 +<2401> proj=tmerc datum=NAD83 +lon_0=-90d30 lat_0=35d50 k=.9999333333333333 +x_0=250000 y_0=0 +no_defs <> + +# 2402: missouri central: nad83 +<2402> proj=tmerc datum=NAD83 +lon_0=-92d30 lat_0=35d50 k=.9999333333333333 +x_0=500000 y_0=0 +no_defs <> + +# 2403: missouri west: nad83 +<2403> proj=tmerc datum=NAD83 +lon_0=-94d30 lat_0=36d10 k=.9999411764705882 +x_0=850000 y_0=0 +no_defs <> + +# 2500: montana: nad83 +<2500> proj=lcc datum=NAD83 +lon_0=-109d30 lat_1=49 lat_2=45 lat_0=44d15 +x_0=600000 y_0=0 +no_defs <> + +# 2600: nebraska: nad83 +<2600> proj=lcc datum=NAD83 +lon_0=-100 lat_1=43 lat_2=40 lat_0=39d50 +x_0=500000 y_0=0 +no_defs <> + +# 2701: nevada east: nad83 +<2701> proj=tmerc datum=NAD83 +lon_0=-115d35 lat_0=34d45 k=.9999 +x_0=200000 y_0=8000000 +no_defs <> + +# 2702: nevada central: nad83 +<2702> proj=tmerc datum=NAD83 +lon_0=-116d40 lat_0=34d45 k=.9999 +x_0=500000 y_0=6000000 +no_defs <> + +# 2703: nevada west: nad83 +<2703> proj=tmerc datum=NAD83 +lon_0=-118d35 lat_0=34d45 k=.9999 +x_0=800000 y_0=4000000 +no_defs <> + +# 2800: new hampshire ---: nad83 +<2800> proj=tmerc datum=NAD83 +lon_0=-71d40 lat_0=42d30 k=.9999666666666667 +x_0=300000 y_0=0 +no_defs <> + +# 2900: new jersey ---: nad83 +<2900> proj=tmerc datum=NAD83 +lon_0=-74d30 lat_0=38d50 k=.9999 +x_0=150000 y_0=0 +no_defs <> + +# 3001: new mexico east: nad83 +<3001> proj=tmerc datum=NAD83 +lon_0=-104d20 lat_0=31 k=.9999090909090909 +x_0=165000 y_0=0 +no_defs <> + +# 3002: new mexico central: nad83 +<3002> proj=tmerc datum=NAD83 +lon_0=-106d15 lat_0=31 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 3003: new mexico west: nad83 +<3003> proj=tmerc datum=NAD83 +lon_0=-107d50 lat_0=31 k=.9999166666666667 +x_0=830000 y_0=0 +no_defs <> + +# 3101: new york east: nad83 +<3101> proj=tmerc datum=NAD83 +lon_0=-74d30 lat_0=38d50 k=.9999 +x_0=150000 y_0=0 +no_defs <> + +# 3102: new york central: nad83 +<3102> proj=tmerc datum=NAD83 +lon_0=-76d35 lat_0=40 k=.9999375 +x_0=250000 y_0=0 +no_defs <> + +# 3103: new york west: nad83 +<3103> proj=tmerc datum=NAD83 +lon_0=-78d35 lat_0=40 k=.9999375 +x_0=350000 y_0=0 +no_defs <> + +# 3104: new york long island: nad83 +<3104> proj=lcc datum=NAD83 +lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d10 +x_0=300000 y_0=0 +no_defs <> + +# 3200: north carolina ---: nad83 +<3200> proj=lcc datum=NAD83 +lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 +x_0=609601.22 y_0=0 +no_defs <> + +# 3301: north dakota north: nad83 +<3301> proj=lcc datum=NAD83 +lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 +x_0=600000 y_0=0 +no_defs <> + +# 3302: north dakota south: nad83 +<3302> proj=lcc datum=NAD83 +lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 +x_0=600000 y_0=0 +no_defs <> + +# 3401: ohio north: nad83 +<3401> proj=lcc datum=NAD83 +lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 +x_0=600000 y_0=0 +no_defs <> + +# 3402: ohio south: nad83 +<3402> proj=lcc datum=NAD83 +lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 +x_0=600000 y_0=0 +no_defs <> + +# 3501: oklahoma north: nad83 +<3501> proj=lcc datum=NAD83 +lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 +x_0=600000 y_0=0 +no_defs <> + +# 3502: oklahoma south: nad83 +<3502> proj=lcc datum=NAD83 +lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 +x_0=600000 y_0=0 +no_defs <> + +# 3601: oregon north: nad83 +<3601> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 +x_0=2500000 y_0=0 +no_defs <> + +# 3602: oregon south: nad83 +<3602> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 +x_0=1500000 y_0=0 +no_defs <> + +# 3701: pennsylvania north: nad83 +<3701> proj=lcc datum=NAD83 +lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 +x_0=600000 y_0=0 +no_defs <> + +# 3702: pennsylvania south: nad83 +<3702> proj=lcc datum=NAD83 +lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 +x_0=600000 y_0=0 +no_defs <> + +# 3800: rhode island ---: nad83 +<3800> proj=tmerc datum=NAD83 +lon_0=-71d30 lat_0=41d5 k=.99999375 +x_0=100000 y_0=0 +no_defs <> + +# 3900: south carolina: nad83 +<3900> proj=lcc datum=NAD83 +lon_0=-81 lat_1=34d50 lat_2=32d30 lat_0=31d50 +x_0=609600 y_0=0 +no_defs <> + +# 4001: south dakota north: nad83 +<4001> proj=lcc datum=NAD83 +lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 +x_0=600000 y_0=0 +no_defs <> + +# 4002: south dakota south: nad83 +<4002> proj=lcc datum=NAD83 +lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 +x_0=600000 y_0=0 +no_defs <> + +# 4100: tennessee ---: nad83 +<4100> proj=lcc datum=NAD83 +lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d20 +x_0=600000 y_0=0 +no_defs <> + +# 4201: texas north: nad83 +<4201> proj=lcc datum=NAD83 +lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 +x_0=200000 y_0=1000000 +no_defs <> + +# 4202: texas north central: nad83 +<4202> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 +x_0=600000 y_0=2000000 +no_defs <> + +# 4203: texas central: nad83 +<4203> proj=lcc datum=NAD83 +lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 +x_0=700000 y_0=3000000 +no_defs <> + +# 4204: texas south central: nad83 +<4204> proj=lcc datum=NAD83 +lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 +x_0=600000 y_0=4000000 +no_defs <> + +# 4205: texas south: nad83 +<4205> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=300000 y_0=5000000 +no_defs <> + +# 4301: utah north: nad83 +<4301> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 +x_0=500000 y_0=1000000 +no_defs <> + +# 4302: utah central: nad83 +<4302> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 +x_0=500000 y_0=2000000 +no_defs <> + +# 4303: utah south: nad83 +<4303> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 +x_0=500000 y_0=3000000 +no_defs <> + +# 4400: vermont ---: nad83 +<4400> proj=tmerc datum=NAD83 +lon_0=-72d30 lat_0=42d30 k=.9999642857142857 +x_0=500000 y_0=0 +no_defs <> + +# 4501: virginia north: nad83 +<4501> proj=lcc datum=NAD83 +lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 +x_0=3500000 y_0=2000000 +no_defs <> + +# 4502: virginia south: nad83 +<4502> proj=lcc datum=NAD83 +lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 +x_0=3500000 y_0=1000000 +no_defs <> + +# 4601: washington north: nad83 +<4601> proj=lcc datum=NAD83 +lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 +x_0=500000 y_0=0 +no_defs <> + +# 4602: washington south: nad83 +<4602> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 +x_0=500000 y_0=0 +no_defs <> + +# 4701: west virginia north: nad83 +<4701> proj=lcc datum=NAD83 +lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 +x_0=600000 y_0=0 +no_defs <> + +# 4702: west virginia south: nad83 +<4702> proj=lcc datum=NAD83 +lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 +x_0=600000 y_0=0 +no_defs <> + +# 4801: wisconsin north: nad83 +<4801> proj=lcc datum=NAD83 +lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 +x_0=600000 y_0=0 +no_defs <> + +# 4802: wisconsin central: nad83 +<4802> proj=lcc datum=NAD83 +lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 +x_0=600000 y_0=0 +no_defs <> + +# 4803: wisconsin south: nad83 +<4803> proj=lcc datum=NAD83 +lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 +x_0=600000 y_0=0 +no_defs <> + +# 4901: wyoming east: nad83 +<4901> proj=tmerc datum=NAD83 +lon_0=-105d10 lat_0=40d30 k=.9999375 +x_0=200000 y_0=0 +no_defs <> + +# 4902: wyoming east central: nad83 +<4902> proj=tmerc datum=NAD83 +lon_0=-107d20 lat_0=40d30 k=.9999375 +x_0=400000 y_0=100000 +no_defs <> + +# 4903: wyoming west central: nad83 +<4903> proj=tmerc datum=NAD83 +lon_0=-108d45 lat_0=40d30 k=.9999375 +x_0=600000 y_0=0 +no_defs <> + +# 4904: wyoming west: nad83 +<4904> proj=tmerc datum=NAD83 +lon_0=-110d5 lat_0=40d30 k=.9999375 +x_0=800000 y_0=100000 +no_defs <> + +# 5001: alaska zone no. 1: nad83 +<5001> proj=omerc datum=NAD83 +k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 +x_0=818676.7344011233 y_0=575097.6888751927 +no_defs <> + +# 5002: alaska zone no. 2: nad83 +<5002> proj=tmerc datum=NAD83 +lon_0=-142 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5003: alaska zone no. 3: nad83 +<5003> proj=tmerc datum=NAD83 +lon_0=-146 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5004: alaska zone no. 4: nad83 +<5004> proj=tmerc datum=NAD83 +lon_0=-150 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5005: alaska zone no. 5: nad83 +<5005> proj=tmerc datum=NAD83 +lon_0=-154 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5006: alaska zone no. 6: nad83 +<5006> proj=tmerc datum=NAD83 +lon_0=-158 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5007: alaska zone no. 7: nad83 +<5007> proj=tmerc datum=NAD83 +lon_0=-162 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5008: alaska zone no. 8: nad83 +<5008> proj=tmerc datum=NAD83 +lon_0=-166 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5009: alaska zone no. 9: nad83 +<5009> proj=tmerc datum=NAD83 +lon_0=-170 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5200: puerto rico and virgin islands: nad83 +<5200> proj=lcc datum=NAD83 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=200000 y_0=200000 +no_defs <> + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/other.extra b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/other.extra new file mode 100644 index 00000000..4b5797e9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/other.extra @@ -0,0 +1,53 @@ +## NAD83 / BC Albers (this has been superseded but is kept for compatibility) +<42102> +proj=aea +ellps=GRS80 +lat_0=45 +lon_0=-126.0 +lat_1=50.0 +lat_2=58.5 +x_0=1000000.0 +y_0=0 +datum=NAD83 +units=m no_defs <> + + +# +# OGC-defined extended codes (41000--41999) +# see http://www.digitalearth.gov/wmt/auto.html +# +# WGS84 / Simple Mercator +<41001> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# +# CubeWerx-defined extended codes (42100--42199) +# +# WGS 84 / LCC Canada +<42101> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=0 +lon_0=-95 +x_0=0 +y_0=-8000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +#EPSG:42102,"PROJCS[\"NAD83 / BC Albers\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS_1980\",6378137,298.257222101]],PRIMEM[\"Greenwich\",0],UNIT[\"Decimal_Degree\",0.0174532925199433]],PROJECTION[\"Albers_conic_equal_area\"],PARAMETER[\"central_meridian\",-126.0],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"standard_parallel_1\",50.0],PARAMETER[\"standard_parallel_2\",58.5],PARAMETER[\"false_easting\",1000000.0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]" +# WGS 84 / LCC USA +<42103> +proj=lcc +lat_1=33 +lat_2=45 +lat_0=0 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS72 +datum=WGS84 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 8 Québec +<42104> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# WGS84 / Merc NorthAm +<42105> +proj=merc +lat_ts=0 +lon_0=-96 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS84 / Lambert Azim Mozambique +<42106> +proj=laea +lat_0=5 +lon_0=20 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +datum=WGS84 +units=m +no_defs no_defs <> +# +# CubeWerx-customer definitions (42300--42399) +# +# NAD27 / Polar Stereographic / CM=-98 +<42301> +proj=stere +lat_0=90 +lon_0=-98 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# JapanOrtho.09 09 +<42302> +proj=tmerc +lat_0=36 +lon_0=139.833333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# NAD83 / Albers NorthAm +<42303> +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / NRCan LCC Canada +<42304> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# France_II +<42305> +proj=lcc +lat_1=45.898918964419 +lat_2=47.696014502038 +lat_0=46.8 +lon_0=2.337229166666667 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.999904194 +pm=2.337229166666667 +units=m +no_defs no_defs <> +# NAD83/QC_LCC +<42306> +proj=lcc +lat_1=46 +lat_2=60 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Texas Central - feet +<42307> +proj=lcc +lat_1=31.8833333333333 +lat_2=30.1166666666667 +lat_0=29.6666666666667 +lon_0=-100.333333333333 +x_0=700000.0000000001 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California Albers +<42308> +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD 83 / LCC Canada AVHRR-2 +<42309> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=0 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# WGS84+GRS80 / Mercator +<42310> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=GRS80 +datum=WGS84 +units=m +no_defs no_defs <> +# NAD83 / LCC Statcan +<42311> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666700000001 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# +# Funny epsgish code for google mercator - you should really use EPSG:3857 +# +<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs <> diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/proj.db b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/proj.db new file mode 100644 index 0000000000000000000000000000000000000000..e886db9b9c7ccdb4f0af11aea366d7a4e66cfd9c GIT binary patch literal 9359360 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%0DfnB!~(pnq=fd zkyB$9$J&%h<5=z}llEE+boRJ<;WfS1>uGOn^$v9M8H4KG-N+Zm(~=~6Z})b0PmjCT z?H%AfZm-+t>Onp5JuWQ2`}{bUgXA=CNRR}QoT*G?drE4K#nFMACGGkdi|3&IU8w(a;afbYFdC z(mmkwx3=+XVLv_$S3E-679IJPJm+KNS{XySlUk6jouyk{;coBkaW)3Lo26qKYx%wo zuPp6qYI|}4wxJj8I00$5v9!m$l+Dw<-Pef^+if@uAw+5tIItiSA!UEey%2F?4@68b z5fz*1M{%^VzVQ(35K;##(%B1?#OvCQW}B9jK9WI7V!w`D7k&={hx#EfDHAv+BapZ* zhzYQ#Pj_CVQ_mvQ_-Iz>_KgtgXF?ZOZt--`bCYZN3{{y~D6f*0be@68SiBmF4Q_&r zK_;WDKMmG8-iroDPZZU+5`DZ>@;LRxK$6dw4oWnU`M=gqb^#PUL4Rf**VGUd0Tlri z0Tlri0Tlri0Tlri0Tlri0TqFN9|VfNc;!}e84Sp1KIYLGsULYd)eW@!eSUKAq%P1q z(AyH|8mOmtXI3PpC&h~6_=@)QrowigzoMG2pnD7>IByU~;7%5;U$SX02GjA#EcKN4b|Sy3Za$q5=Iqm(DTm&qrN;>>+yMC^p+ zYmvmw3L!24coz;MP-{LNLcms{4q&<2P<^(`1~YE9T6QD zCqjV<;q+)MKrHMd9yvkcY-mAPh<>;i1EVkwfJG^CoZ~pYzOA*kzNv*As;G0GeKw-y z?VzBU#goICf@QT3!X(RdKEOFsu1v|ZRtRXc;o+FLCj^TU(Fi1B&i{Gh|F6{YriS|} zcNI6tt+c;of7G6`yX_|1%eFghr`y(9-?e_hda>1KU504tpNfErfQo>MfQo>MfQo>M zfQo>Mz)^!h);svBJ75(6=R6|uUDGw2@ws{z43<^4OIrlsyFM75z@h%C2G~{$kk5sy z&Tr3dI_K#mijU!JC^bG65p!Gu}Q z^Q#VE_L8w*K+_OYYOp%X&y8q7uav%_qbjSTVd4l9)^}7Lhr&&e z!WoVofc1r%_@p=j2X`ZKJCFt7L1AP`tCUG+M2V_Pl4h&Tu%=M8^>3%2_*oTXtIe=# z=J*+a(^b75C8GvM4J)X6IEjW$6PUmsqG+i3DwdW%qO_!JO~`kIBDyRmZ5}S86PX53 z)rM5NXsYtVOqDKfRkoEGY_qnqhHNKbDJ+MX;&^Dcn`&puD@1-5$f<}HB&KGH4aS+< zCg}({=@^hDv#FVrihTb!8(zn?_;RkyzQ+2D<;NDIX;I1D#cvcB(}1I9bW;^o5l|6O z5ttEy;_3Ykr(;`c1=%sR%CS;YQUVLI(nW6MStdZ*UO3?Qv^v`YL#>V2r8oeSLLD7} zfxdvWL6P1LdHiHwXQj{Q>a3zG#(a7oWTnsTcVlNIiH040+XkhbpV;Ntjh%>ozSHOO zw!6ChAhAcQjoN52*vLLSd3NMpmffbBfq6xr*WSKq{@=UyeeJ5_Ha@>|=!CnQsomR^ zRZrZXI;rGA-zPUdI(ldS`P#Wp{QSnUi64CZP4Y-udBqbyC<#Qrwft>*_j?%Zsjb84 zA4~~#jt$sGsBFtRDz<{l;*c3_rr?+;(D%F4+rwzSs2^R%a(o>R@ zE-iu!5s8^{S0O{Plxlx4vh3;@4mMv*Y3T z>l?o@)>?k{6J1gUG4yyi84Ipg*>*F^=ZDIhcF;Lk( z;Onfbs|pN61Ndw~tzwZ(R-I3-b6%y_dp15!jPTxYrRSM7`z$%}zUHyP3z+z`fSPkj& z@u37(FtPY1y*>)Y7euUw63{llBq~=j)gCj(rINCLJY?GcqIew``37?bdBfX#(pfP+4p?sxfk}p?oN%P{z=%+DtVB*JJ@V*+?ikkgMtL#3_-Y z`~lBq2O+~wrcDhVQ~BhaKl%bYp^;^A>jrODk!qy*%ZKyDl<)rQD7{11^%5M-U& z1leP1B8z03r;%YKrQOiNKBO4q>7i&OIZF7;am7#~8i9mwKopG}Ev>Uq5twA^aAduF zZbqDrj}PgjR_pwjm~kmU{X_zVLh`LW^+UKIOp8CLr0uM2W$;_d2eztVz0QO6vET$bKv>m+w`?B6E+)W>C?8~x4X=E=kO#!~8 zHj4Q0&zP@y$GH-H_GQ~~5A`7P?qpwu*5}x70hLMZ+GrTXz3=4e1_*aQMrvDDn+E%iFYjk8v9AK~Q9IC%Q%&S*?qm>^xO);x4(Q)B* z)Ua%oy`%ILU7n`qMl?*NGNVEvQ;PI?2sf7m<6!XeV=S4n>g-BxrIgt?HS39~bKBb$ zpfaQJ5=kPH&MikElYuQ2QYMS0?bey6)KX`4u7n~Rbc5*FSqZLWSFpX5!R082(C{!s zM+`$S1bQJ-as!PCBvYRW4jK!MkCU(=AmFJdaeI$CZbLs3O{7a5~<1F^| z)_p7X`pb1_gn_=IORk6f{=ljWPx_r3POa?osEDj1|D6%M(6qx72Q~{dokf4joOmRhuVQnBJ%suEU*|`ESZ=%ENzkN1w zD&-+_%bbk)WlqLSGp7t#HNh&HctI(JjDR~~CE=ZA(a_m`lNG)o|*+|7O1NS%wftTG~cO7jw|(=q%E$FY>cOHGf*Uranb?Ocszph z30mc4A9JwQJ8q~NQCwfz|r}^e)kCE4ep(KojGA@&3{~jdKO;2@0t=_$Q5zbJJZkQG9(At&K^~>i*T`Sy*uRKW zfYEFqi?3nzWHw7W?=C}GON-Wl!Ttcmt_o9wnJXzH+iJH;66Z1sIalmm=5QMRw2{@w zi|**y*v=P8%P=ioHmIc7Fc@DCQN|&x`NV&bO?@wJP4u5%g#eB{{|K?1n z6AdHNs(!Ep-(S~!dJG;*sEkt53V{yO3F(h%_@J*WW7XRz3$=h`n~;K z%UgXywRB`4U+U0=CN;Iv!9nG{xNIj$?;6IHL7Yc)C7@3^HPJ6(c_D^ZFo`>m;MLU& z?N80JTr1FJw?^o)1OAstmH!%~pi{kClG20qQ$juwt`WwtmWm4NBT;cQl^Wl#zMd_Z zlM%5lG7_s>pQwlEX}l*)*W)hgD2{WJ_2Kw%8V6R=9o>2;YmY|7WPK=x!z{?7O4j3^ zil?P+ES6F(fIPj$y%!`eO+vTz20HSG<#ZVr1Q?h3~=_XU!R23E@-&Mc~E>9uu5v@t9u7GdV>dxQFc5k zG*U@a-@HVB-n-XowmCEwXBUu-(FsS!-NxpIgS+ZRHVzR1p$YF@Ay^9k3&R^nn(1Ki z;VmwJ(l%L+%ds*jYbvFxBAxbB9njSgXl2<8tmsgsNO>A+oUFQvx{wlN}6`wUZ@sML}IzQz2E9IqU?i@-noXE~qgFm$D5KsJgl! z%dS~N2z7<+nhiy9K_iOG4$v<|N?Ei>uw}kMhQlIqNIf<|t9>?-=g>DwSdGLv1g zt=!MduIua?BqJju=?Q3FOKnaOiQQ+Q=?Y!x^}yuztxKr!Y#qSeU8SCoQf)LI36lkF zJzd?DH%W*Y4vT>(?xZUc)ab-nc8LkB1nG1eZEBgAOrq(l4}NRvgn)D^Jt6pqaU2hVHi>&ea(?J%;dHr@3#_#X3e=_YYTdP}3{Hi>Agjg;d<6J{{g&MDNvkos*={KL z>l_&9TovpSlc;A25q)IcaB?Hjobf9HB#=&_5U<}_g+laiLl20$&3eE?+oi_tVHI2W zhuYX-k*@XlYPwKs0W;l|#~X4waZaYAsU#Kl3h7`pvsALF;KWzz3tJi*(G{|bSlOYJ zyH~hr*w`#xyVAEDb}IqhBzS<<3+y?wu8$2JQ94GC#Gv>nEQad@h5JEqcr?bC?g_={ znigrLUmqGy3AiJKj(5-_j8L0|c8oBF4k*@$$tTmu9C|jXYdV8^V+Q8;$eeezp_m?B zg?61nx{Np!P>x7ny2B&tk6CVmGGo|}i?K=^ts6-Wb+-@nunvgQ!E=NdwYclHbWmY! zX)np2O@(DbH;rC;NqJtLd=CEz>*A>xluHMVO*PupDoPYL1#ne~-KtUpOT*TRKz}dF z#HT{;@q1B7#w!W>pi|sSU{^)Z?C5fXdcerklVrA43Cq(!6I-1O&6}C|NQ% z0bC?DI*vI&G?ZlFez9sQgq47C7O-|rG9+~O()oXW;l?~$q;O+lOseeMesZS|)uX0gIx+$)CclQd_4T}U1 z6e3anaM2d|z>R!lhEg2HdUi;p=~`I6WR7bI)sgiA;?QxeG;d{dMKLujj73I9QwSdu zMa&f?Ett6I5DP{lcsqz&=Na4>{4`cF4;s#xB{1Elmr6SOSWy~R6*-)$vy0ythu;fS zui|-Ron5+X0+`f;3i)$I?`;uwAhM&E`G8@sY&U*bdD@pT*49)<8kbF z;>vZ7%bHT$>`=K`U?e~DH>+4d82h5>uT`;ZWnQz%K?My!)$XUFU_2#OEB&W^$7Wa9 z)0(uADa~DL64T%Lf;_)nzE-m&Q%p8_U{$JjVPkolh333ED0vrL307rl$z!BgGa0EC490861 zM}Q;n8A5<0nYe71!nE$@KFz(CYrAWA=Os>)BUt=e@kaX{_U@uBMMW&YXNYUg3P*q= zz!BgGa0EC4|HBAaXN)+in)6D_ZF!-hqP(Q9@kr>M@_Ol7Xm~>~8D1X=YL2PM`mRC9 ztQ(~>nB-_=eTrU7B=KBgI2@~k5UwNZ;)#*^oDnera;K11m6BF0IwHoQ@v5b6B(*sf z4aSlqk)Y;?w6qU|U5~yeHk_l5a!)zo_XT7k8dC11DuiSgq%PY~h`Ul=+3}H>V{$*|q~FhqD~RO& zwRbU437)_u`9%H52vnRUhceqh?0#BL$XdPmBLY?;;NRID)u|hp2p;?-?`%>P5Zc`(qBmhM2L-`?s$jN z4Ru42m;$ltMmbgdcQK>6Xduy|$+?dGSME=#rjcqG5-3Mg9y|xAjUBx)O!b#Fu%ppz zVn+vad4rc+&I(%_r?18!Ivr(jXq%knsPC&M4ky4N1j+S!nuGl-&|n&fH|U;=hGHp_ z-unx@20uzwwRa6H+m+Uwg9MT+m~=aa zwYmwhTD6CE4%T+})^_!Gcho{MN$fh6?^3ylJEK9GGO0<0=@7g3Bh<(NB681;_Lz?6H}`XRSo5? z^cD}dvqQpoWL(6wMU?Jee?rz!&+E=zu(!3ezTR}*Chdy7?y;bB&0g=Y&`{Fs7MtE% zD&}}1G7^DUUFnvadJ$B+Se$X+o^HR(QKXmKEK0RlH&Q38iG_m@@9VAeZ^r*Y3~CtF zTY{0~rnVNZq)8w+h-a0{6C%PNjaQNMP<2(`K>ez~0D+AO86I-OW(hFz2f!I`+sDrfWIIB8zmlib?f(7C+QK%m5hk6e7ToV$fhoN;^ zE)VH#iuTH6%3_v^28A7q3-s0%?=a}$1%!g*xi>w-pjRm@_n(i4B$VZU@g<3LeO#&} zBu7({v6|h(jFLShu#z^$2vBKN5x_JX0g6cmN=p3%c!mLlZ>pc zgIdZ|okJD%4pn$J#A@U&B*>`Corpd`*@>m4_8Qa+Y5fL$X*~yhX?=(MW#~P~P3b>a zTv-AL%QQKJ#r5oM`zPT)yCacvfgYz?pE->BI`*KwrUTsqiAWH!HzSK>AmFde!>*Tx#EJS4EJ$67E7ZlyjY6>|?V1>w!g^Q{d8g=!lnF_~%+5Sm2_OmbBmrgBr!aGj z2`jrKBf!VxT2a%zq851+2IP!jZBn_VABgsC>68(LaMFeNf7cL|BrukEaEPjipG4+V zL5#AvRi@JrC;ZrwM((kp((G>*n1&fBM(ytzAh~{$E>kGXZSaoaJRk(6e(5oThu1S! z#{@A_VpHQoKx?R~tV|tYYC!ksA<*_1QWVbS1a?PCQ-ujFcj>O$UebAKU9k1bz}3HH zH%QKtMIMU46_uBnJghLtr?;ZS4*J8-D5vNx_12%*g+k}oOv{H=AZP|4WR+URX*_`x@@hf3!ts;*R( z2zCcHlKdLTC8Qz+5bR(e9Suorxl81C+C2#IagmJ_H zU5y^%E=%1I?G7`wWCA$8chlX_vv?R&Ybt3EEWbsK@7;O)rN&t}Bxt-oWC#NoM)A{X0W-$=bO`?DKYQ0gH5cR~lMR2R6n8DE`aK zW8#6T)~+17CL4zx)?h^HC$>h-K zc%~p7Lp1WvRp7GV9!A7FHM`y^BGZY195)xc-e7Kay+&n1nczs?J7d>3HM_o@vFp>F zLurNLn}S{6^z2IBJ7c$TYIYlU#%^Oyb{nT)w{d!QCGVZF>z|rk|IXO;=VaGE1-t&~ z*_FI^#%|Np>^AL;-KL!EHci29)Aa00-aBKrd1`i>cgAjWPIjB8V7GaCb|vp=*v*!m zqYf&%W}6*q8j?6SkOsCOCTmHWcznim{^h!(Gredksjtlxv6PDrO7}A(oGK@OniMMK zT-HOPABAeoL#w?1KJipJdDA3LDZELnY3_Q~bgonz4Ts5}L_U@7P#40fax$h3!bZk4 zcRgb|*DS_99ldl@Gs(u*986{m$%~X>U70u-(EE2Y$wt&1OlAzkGLzc)`yXYJjiWi3 z%ou)UCbd!bKguKJE$ ztN$q`vxZn{s0 zD0sbKo#i%*nFaY*6XWqY0{_DZSPz->IZN7CPWstaYMzZ+HFS>zTN;C1EzQ2*U>{v; zW}jYfYm=gug#2n~|59}z-PGllQqtg&UKSc9pg;739&3$dI$Ok za6h{_xVrz~ZstTBGfTDN2Zbqcz>L$s2rG_*yLUYca5Ti4g8kF5HSn{JEoN;*d zJNJX#gC{GUC4oaT+4VMS?2`VLU;r1zR|Y`a+pIAwYj#l?4dC+lhR~P?K{mL<<$ z^-Fu(_|;%_&7{pSv!?Yp25gzFcV$=iVE=M@SxCHgtW>_(_Vr-@Kuc?N$I6<)$e37* z(;YEJT7@!Dk@VF_5j{-vn53bOB2xM@o0+*{$u?=vA89gOQs8EAavv1&p_6kMJCahP zea+C0#B>=AgoZ-I2m4(p{b+|HQ>*LB8DER2YV2xi_DdR|YECB(YtC8nsMH(u4s>W47qy3=Ll}oAGI?;D<3P+?Gl;XQ>@%+^Pr1Bx zP_>1D8Am+2V;Lo_sZV93tKyn6sC!N26xc&%j7pT(p zd3KyPhI^0f3{O4st0vW3?Ss&n=WF#!XzpY4?dNrn%lFHf_l4iy@ohtX$aLtPVnB`9cuLNo|TaTpHd-B8zpZiIb@2Pk+$ov%e0 zA7@9jGeVTZ8Lto+?PCcbuzGSm5b$s5Vf9MVwN?IgwUbry-qf7grBb~yD%{G^Et8Th zSrb}gOT)ik;nobP%YJ3ads0_Kxn-)c`c@*ZeYx^_aaLX%TmPxNLP?~W*QVD0$GomQ z6nX8POrTr?TMpHi>j{0)u&^SuDHMsI((0-&=kgY^o!(#?zq%vyZa^4P1DvA?0^ zKalS#sSanA@rnrY-Lu8cT66{F+ccZ?ljVcmu`uPBa{BB+i*ssmCmhM z!=}la+_IZ%*(Mrm$GW~YBd)x%WLo{S@a#+qw=@oETL{4*V`%Vg3tN32SPpAj=!3Kp zxFrs0OB~w9+Blkc+d{R43*mt_wRy8%Z$^cL&0ebyu01$520T_xmJlA33=gYx#$P^1 zt@Fl$Y*O$@g*ITuNl1+2<~r_0&;fczhEy7IA5n`=N0j>gmL`u+;zyZ6$w%_NT?4E+ z_ClMcb>-wTu;$xROhuJf&pKb>SAnjMrY3zMHPr-ECJ1%h<)FJO3+rnI;1q?XODH-_ zCeyg-F#;cWOR5$z_=!iQBS4r{5X1*g+K>;=B)c4xS0?4d+&|cwQP)0cHZTud-qK2gc+PwLR2U^)IS@;h z^eR!&%QvRz;L%>QwQe74X+?$UgbL}QH+zuF9>$^U@HUrOy@txG^N?zydi_DozLb!P zmbTx@jytCeHZ33$P2GXiINmgBJQ@!viKRvKN=rU%RSQ7x$S`G);JK%cFsWhD2y2CI z+*RHc;zEDt^3MLw-uBJ`j8w{6NTc{qs9ZVm&`N7*d%NlMR#srSt7njA%hPyy36K%Hjc)E%&4q6pfOZ@&41bwpOR`;W1#E?W9hLWEN$clrB*V9iaw049WiIMdQ6)w zV^BkmnAa!Cj2a=EjP^p5U32T`Tpn1nN_uE%$cq+Ed76o*eT=Toho0}^7T~5(B22xR z{EVHtFH-h5mL49JA6N@)KwwuAFj4R8Y8M9M5GaAAdb!YzYnEaPZwP6^BkCT;V|qjn z-zm{WLL>!x(ld30roBc;qmX9yby-iN(Rin+cE-l6RTs6KGMllquOL?e>C#~4jf82E z3#Q^)n>4m^hNmuBUAcYwZTsZK3#_HBt){a}r)k@{^HIMGEm~^KYG$Ub>uM-N{rn^~ zJgbpr4--mtmPacJz>-rn0A?%E)Qw;{bj7KSUO&>YaMN-wh1T7fP;+m@C@b7fs4`~N zJ)@o9oYX4%XY_VZ?z(4ettxi1emQx7HIA>j34N9>2u;DEb`vP0pU`wr>HyF}vzu*( z^KeXKcVYOKs@yL2Wm*k3GN-v~Gckx)VfWD0*6~jDzwTie}{muLFR z=W6-)InOMe{};Mmf@%Gt`w#9%p#xypUBetc=g9Eva|Ad790861M}Q;15#R`L1ULd5 z0gk|b9Rk*1z*@2n5;*42joj61I{R_=vcJ2%FXO&wdtZNlXZv7h2fO5&PbcN&zm@mi zu|Ph;Z!PImsIYqw!R5<(H5#}m=F!D`L5sPr(mJyS7xCt(_dh+2()~|LL%2l?dH7;$ z$^NF2{qwrJdY2Clbop9agS~^xS5s(Qn`mk5>gdQf`gQ63z~&cb;&K`i%VYfCPNwB) zxF2S4XTlOJPuo$Lf#M_b+<$Wa#{Cobo$hPgXSVY-SvCd6R!JQ zx415Go#aZphFpEF16(z(JzN&&Th8a5k2t^YywQ1~^8{zgIpkdJT`<;rr~!bhsze;qFX_?`JxEFVo?>84i`3 zGaWW%I&92zNM|~vG98kc4v9>MqcR=FGaTlZW;*PV;V`c<(_ulTLq(>;-kA>NnGQmx z!~6CC#m}=`9?5d~S(eMg zSuQ`#a`{P?%R^Z%4{9!+7UHM!f-INwvs{kJbXnlea&cw3ICr;{$$9tS#S$fUakkS% z*-jT`I~|+lRQ6)F(+k;7&u2S5m+kaymeZc!$#%L!?-a<+kmO{@kmO{@kmO{@5OXqS zNOCe{NOCe{NOCe{NOCe{h&dTEBstxom05#SJDvd9(l*J_?E+ zK|gC-@BYC3j{DEq*zoT@ShLcirv!j_aGQn_SnpE_YqzI>&XI>qOV2>lo}V#9a~Buxp)bt?MAyN>`_A ziL2G+bJe=4T;;Agt`e8qRpc@|KXSh7eAD^5^LNhYoKHI+cmB-zfb%}*_nfyoZ*|__ zyvlj0^8)8t&aXJPJCActIFrsX=ZG`p{DO0hv(MS>Y(?0D7jlH<3IUpgLh{M7Ly#}3C`j&C_`c3g*jj7uEnInHpL?AYq~l4FzO zD8~ke=mO6VUyI);{(bQa#m`{R z72jWccky?Mzgc`!@ioPl7hhC-PVs5QCl*f@A5)yhPDrG9xOiRh+Tw$XR~B~` zFDY&<_7&F_R~45R&nYe`b{7{Fo9!Rj-?hJKf8G8&`*ZfE?T_1kW`DqbpZ$CG+wHg7 zZ?Iowztnz#{Ve-e?Az_f*(dBt`1AF!{ociI=*o9zwu8vEY%Irdq0r@gS~ z4*UcsPw2tV5tAp(!q2+N?d$M!_~iCV{Cr_@+Xnm`Ho1+6 z9Xh!+jh{m%x3=PE?c|o@@N@9wmgV?aGr5I`4NguTgr9-Q$rAkZPac0beh!*Eem;Iy ze+*IMw!V+6VD|pwNSHnUsD-)eqd3f!A5jtqehAqDw(bx2gSp~^%`m$@*dONd4~Tl_ z--)-5zY~S__m6_P?0rAXzm z0?gVspsU-q=ndk0;U9_4zJDY-HLpiuR=-a6s@KTA&ucX>D_<31E_jvDsQ3e3+uQd3 z1L0Ku`#zY$?{NxeoBzrZnDc&@hFSKzMKI^SOcdt4+yZm2m#F|}zqA78o-ZB?v-HKq zF!y*7Gk9Cc3kSlS^}_BjXFk6M=I+lE0=qp&XwP_VUzqM^iBH$FkZWLbK061d4h-!e?thoz-+F8n%r_sK3-d3JA{W*_KMJ(1fBHG=2H^ThmBdFrm*B>Fu zul)>l#`@~dP-@mcJbX0F-#@$@<|_{aH|y_ydH~Fqf3gYYOFuzgtS>$^2=j#pkAwOA zgQ!>5=NVBYS{pAmc{!{l+ zexJM#rEGoTUessnKBZ9_8Yp?-GRvzl-{2ec&#Xj`hcPq0U%;bmw6(e|RV1dH;8a^B;U?H<#pm7dF{1C`I>9%VP1Vr1m;!OP(AtD)s&+vuig{p6;~Y$^YW`^ z!MyBiMD5bA5rwZ_8Gw1o6_ksMuOLn?x|}FncsXjF^@7VN7w2C#6XtoBu7r8+rTH+= z`DzQyvoARc=2@4Z=3CFacnIbh7gMR7ei5N}+C?syr(Q@U_>~JNr>9&%u}(f8t-yNH z`KaO66VD67JmEYli|yx*!rXRl9n7ugP}yxchstj9>@>{d&!(Dr+*uUn%V$xI{nD8O zFpoWxa&gQVJur_xgUV>)^aEjTKJCjeH=Wi5bK|L-VWv+dtWu{ESIMueg_-yYp>fnH zt6`3xLUH3K6Y{Z>DE!z-REMJ{Qb}z%kwPAM0=2lvcFN1>cH)0z+ZSQ3-$rr8tyKTR zTL``3EmV#}la$}kFnW)?Lie*UZ5Ltv|2Owv+^@M`W)5)Ue;fgh07rl$z!BgGa0EC4 z90861M}Q;15#R{?Hy~iUaLb`s+h4E++eo(aCutkGrogYjrM2)UL=N?s)9CM(QRS$;j8M61mwkhN(H)V=b*MHBGjuoTZbY5iuAaB2j_NzBnso zeGp28eOF6Sf||5Mh>2oU^kPqB7bc!)WkX?UWu@s0EJpIEXe1>vG5yh!lQ(ssbX*cDue8|Bd3ntFK6@6b2eW=QZ364SBDalRr$>M%; zc^*I5D*1B-JQ1kQ^ zRo9yt=qlA@im<$%e5UG&zLch|DEffAP*Ze$l+<-5F@+Aw!u2#UcEYm0zEz!pUR4UD zQhTNdPPM0Dk>IJRAz7$+MV%pXKDkKPG%7;kDLf$dRHp@0FFdb?DN%yIE>kk0#286a zr?|uc$+u^AO&mOgr`l_ zvpE}yRnv5$BlFZO3w9Ux#2ZAyJWi5t&agm@@S#fh{ zY&Ze1$-YL!=AFwv#+f0z4an6__BcmMyhuu|td za0EC490861M}Q;15#R`L1ULd50geDi;B$h2?bcI5SgPN03i4~a`D8lO|N2Sv4(KL& z3t+qPgkxdeZ~|UB*skBcAI$5v(eeMaTQ|bIW-D&~+pgY%w-~moCh-!%_OlZ8s^n(p!?}ur zt5L|Z2x;zVA|7z7z~}=9J91O#zBSMN7GC{7<$lQhJ$&##jsQo1Bft^h2yg^A0vrL3 z07rl$z!BgGa0LE85h%twzDQojJF(n1DZ2n>2YgKOE<+*nQZ^4P>`U2ZD3HG7U4nc% z|2Mf`%fo;Ck0Zbl;0SO8I0762jsQo1Bft^h2yg^A0vv(=dIV;f3d*o~&>dJ4^fq|> z_@y5@|2Mhc&clEFk0Zbl;0SO8I0762jsQo1Bft^h2yg^A0vv(=Aq0xeW$HEnU;qCP z6)evRM}Q;15#R`L1ULd50geDifFr;W;0SO8bO^9V1cvkf_wwBD=>l*oM}Q;15#R`L z1ULd50geDifFr;W;0SO8I0F9@2v{vMi|7&nz5n+XoRsJOy894!q3c@LsjhXdCg)$B zcR5dSE_J-;xZSbI5pcMQe_DKM@tWd=_V?|N*{`yv?cMf0i{2=@tLUPlEk!Ge=Gxx0 z{m>@bT5T@t1J;|YCtBAPeq8vg!W#<3!peg83Z5^x1BviIjsQo1Bft^JLST{CQn9c` zQ78{>?K*2P65i}-^fwE>CcofqXcfHG9!t4zPAD1)C7D)R1PE$hK~l)RiP1n(XV zmeSI)?}&B5t|2R)u<0sr|0Pj!u@rlxE>5rMAjF%eitLNVi)2W8{~ zyL(q#Dk{oG#5l@h45b&ofQK9=_Ois5){ zI0SF}9}c3#6DZVpESOA*QsyTDRaRY`>{ z4pVYK*zn-VFwt*Zda<;YT41kSsN^7O%j9xo~u>L&hMxVNRYb`EkVYrGDQ zhZ3Q&%x@oZ2)=8|EejXU5o05fn1~{YjS%MZO}pcsut#*eI>4h?rGDnJW-#YydT#Su@8{T3gF}sqIR^;zLw|QYcSLBPy=1QSjF91x%?z zDVQ=P-kIO1fK&uc;CbKKz_lzLi==|_^{DNkWI7>ce0mxh1hDT}w5O%AwlXPcQBNjO zM~NN%x6khtJU|HT)VruOGqgS=fvFF@&mL&_T0x+2)gpu4ODy<^hlUbMW$TpT~+yJS8X4$BkvRgRBtfn;V;iMzFoyVd?BF9~GnMms1&q6l8UMIzMkys|W1_ zbXF8wIs-M+g`L8WsuodcYWAV<(Bf+C7?Jh8m{MqJ6Obv=mudTY*8Y9zVCM z&)>p&j)2Y58mP)0Cbz59#?Z*o3>dGKRvKN^kpT@$Z}+#L@wTEu*A`Ni^qngkV6z;k z^5eff3oK=2B})BLe#z$ui={7JN_y+#iAZW9n2M`2fC)?%#PwoAj16aZggcE9^q?{d zp4Dbcdt|2E)nPEBcx+-791D$)W01(ITGNC@B@;aT`Jh-jO{h;q(F=;8Y5Fv2`WVf8 z%tTG@7hvXJ$9}SArrd!ez!BgGa0EC490861M}Q;15#R`L1ULd5f&T&o@~_>ipsFN4 z->^MTiU4ijnRySb{|j9Q!?fnR?{oLN-p3t)qnX2hLDo2n90861M}Q;15#R`L1ULd5 z0geDifFtn#jeylO-|Q(*<9cE|6v7R(@lZNimx`>HZP8E?E6%(sb8C$f2G?{V;fAJQ zXaj}QeGNroSfhU2YhEeFjt)j6FygV)_-M-0+SFJZJ9=XnH_e(TQamQ65~4VcdwQu_ z=9`ME0cvr#K|YVK8%}Nn$$t!*mwah`A{ZHo1xH54*Eh7(4n{VJqoFhr>+Kt?J+yPM zw!62stG~OWcCbItJFvX3zb7!*-PcLIJjca3-SI9-i^%-!S=2$BrO@b9JO^73eCbR0|hk>rqU zWBVJ0@9$@>93JtswziHpcmrBIyXg{K%6+8{m`hTJG1DLk6 z-EX`9;Qo#KQTGqscS0V(74CE0C%KPxkGsQ=4Y10+)ZOT=cF%Rsa9dpOx&G*S-t~m* zLD%+x)5>$j(4S8qprhUt6d$g7S|$|;F{&KG18x@664Hp1ULd50geDifFr;W z;0SO8I077j&mjV~vutK_zUlP)_d6f!zca1o{QNK7-fDyW46+|Rr^N^R>15w|Y`Kn(gLazt2KXShDZAro0FCW5`~5Q{4fu zA5Hc>zF;1MeS+*I2hS$^X0p#JGp&Su6WMovqVO-UZzTI}j|Q%UJx%r*H!4lVo>ou%82ag6z&8@B2sCk7D+DMNh*%PIkw>u3p&VWH0`5&2F&A$Zr2fHN_oc zcCm^uiITnOW`_v-2D01!Y956BNM^6BdodwkzGwxWCP;pTnlWv&<3T2yg^A0vrL307rl$z!BgGa0EC49D)BJ0=6smE@&;u zH{})@Nssp19-{r0%Xb#c@>kjhxlAbV;pKl0p_)XhYWKVgoyc6VsU^>SrQ7a0+4*PZ zA&y6j-zoOmHxzvp&iro*1kMaCww9Ea+pgSgV?^AfJuT5}?fspB!A{}e?#{J><|+gR zgn`ago$Z5m0e{1Fs;J3DvI7b4R_r7}dy!rC2t$H*A~H@QomDqUB&a5@Qi&+LYqZ92 zA7o6V)MYONX(lk)lTAi;*T_f?DlOSxq9x@=cG?(;#C0{m6zF;;>zG+yJ{IXeU zoPwpsOqLprEH!4c)R=>%#%WlR{IXf{Pr;HulO?*cB-Kk+O8#t?{5e?iPs5Vrm(3Dh zmMKzQ4Hcs)lcgpjOHJ7CVHRoWdc^Z}^KLbmO z#sM)b^*GD>`+9Uemn0Qg7-sErRp;_S;lRG`UVQ+mXA#DPJ~-E9c1=Q?FsAi(LZG)p z3q*V{f3i%S0IMQWgZD^@Fc)3N1tOADR!VY6IVCyJE+^;JC8z6@l;pg*lasnBEzm9} z=hG#p>u?lGzTC-4U62-Nmy>JMC8z656iSV`lasm^Ezm9}=hr2t>nIdT{@lq)U56HE zmy>JKC8z5I6iQ9GlasmyEzm9}*Q`rU*T5A@&AF44n!FZ>lAB!BW-Sf0nzk%tdM7Z6 z$fex@g2Z$CtdwUU-Mt;1hfq76A~xeUr*CyKo=yylq#;4qQwcg(Vsnv@3MEFwRAw-p zD+Q~W>^Q($+U7THsbJZeN~V1-_X7=C$rXY`lv74>`F+aSSh~Npbbp^|%Y2rN9CK^p zC5LmjArmZ-byP6LxhKci+7YK2DsYE^lOz8BFP8E3~eSxZ}iSFMpT>Ut!tJk+QZcH!EQn;}DZ z11s>UmMH1)ksRa_^Xp3t$r&_~=*wW4A??hNl&U`TzgA-F8VgH(<)$=)g_6q9^Q3(S zvbfUx*o2Z8)10bVuIc>0*oCVIdFD~~Ywjo9_qeZjpYGo5{-S$@yTR>ZUQ?`rxid$A zBft^h2yg^A0vrL307rl$z!BgGa0EV^2$)C83QEdLW_Ne>F7NN`@;5^rXoH8omIqb_ z{0&$IuP-Yovy@r718eY%-s5-dKL1#~9U;V-1tsPZbLT*Rx9Q5~+0Vr@;2zey&tmQu zb-;aC=YHAl}i zYAMsb|G$*K|Nkcol}F$0!TkgGRqkz&_ut`O04e`3GmlS}10I?qz!BgGa0EC4 z90861M}Q;15#R`L1ULf!HUw8`-?hE{yi$KXI$ zi>EcH4-*{h3-&8vu$*|+XDykHe|{D|u%g?~9$NSJ2bQ-o8)*1j8-s()D=4`m-XHd} zmdwGwB`i^d?lPpWrryG$z*CnnqW?ZX(aTG^SoE&d%Vmz&b`7*Ns+mFB9-o6$C!+89yLGEw$1l2Ga&r%o=dkHeh%kZzAn8E+xMJg^O zZ!+&q&CNl@TO-ri2NEw4W?;A_`>tv&F4TJJmKSDJ6Z4*34c;QKA+djgr358?YugYRWp+y(XUeahgw zmHEC*W+9{&6g+A0jcRc%0(_q^_%6|Wt?jh_x4QR&S$MHw{ZCH(k0Zbl;0SO8I0762 zjsQo1Bft^h2yg^A0-pl}3NNa)mQ-MiL*50F_rIjA4HC=O(z0qm-cs>+TCff;yimW= z78+@#Ei5Lp=C|;@K<~T9x#Yg!W@bJI-}CjpGgp%P9(`n1t%L7*2H$SxJH~vg;d`#$ zcLt*=G>~t_W$-=6;CmCf&saoe;Zj=vTin>#$g}RDtp7g;Ma#3u5#R`L1ULd50geDi zfFr;W;0SO8I077j|0e`+TSj-^A;Ql8ol9wzKJzuK&S&X;=l+ekC&_H{!FOi1uXLlK z0Iv_MyX$@T=%iQ+ZXvVsFk1hc-P>SVyRrVig<1cf5a7vj1ULd50geDifFr;W;0SO8 zI0762jsQpCe;Wboib^cuOY&z{_O9&e9PD52VOIxc4yvE@c4F1RSfzK>W0zp&?3qjh z;LK(@Ktls8-H7OgLPH9R&ma+Mz^w%9a{c;$hIIbV-aC|g=;i;~ytne)zjxo`zQ{f5 z-rqgf^@{6zt`l7AT#H;*=Sz6^f39=X+2Sm7{N3>r#}$qVN57+@_^sjxiZ3Wm7q2W9 z?0>W0Yd^(4U@t3rx#*^%ql#K=AKQLxJJmK|tFV4x{jv1|>!@|9wYcy%g*O*&DLlAv zpF(rNa|PcmIJ#h6K}*5zmOok^wA^5swDel4EEe;N=G)CDnZxFG^Su1`^M96qWqvHb zJKt=2&2+cvGLvXp1a|M$)d#Q6z6;h?TSI?aqe6?f&M&MP z5R&P{MsY$|FN&$C7#m5AE^VzGK5f;4n_CdGQ;qqK7Sq!-Ma1r05#QD#`g{$!Q#@3P zI1edSlosXL7_WaFj*IKpM}{L}ER`G%Ma4z%t}nI9-fxYE5~-vxE+&MrNHiLW$5^1n z-}v#nSKR)_X?r4YsY>h3bS#pZU;#Se5mKpqEi8^CL{X?trpL#l5fDqog|N6j5)*}l zIGzxbNIjGS^_oy@Bq}aB>$&A$>%X*d0pkVICK#(%CdJL65iuDV3q^&Fo`Jd~3+zRp zm8D9cD@Mh!NOF8sOo&KXIF2msXV+i}Ipj zfGne@!(#Dw58L+m@u`i*z!&NQOZZ8Y7o7i{A02Smhvi7UMrH2;W5KYHdn3d`HN^SG z5Cbg8J_u5wX5qZC$Z#T_2!$h|81q)@n6Z4%H9#R3s*r(R6)5}F#LvkUg(X2vVJ0|` zn(f&maVg~`XG-`H#wDfJ5~=!~H3H^XG{v7BDiNk!&BU3Z#Bi-1+$YvtbKA#fTwn}! z28Gh2>YK50?a$A@jH=J~$yG#y~DE`jF&dJ~DlSC%Cr zsYr5Em7=x;`FH3DurfUz5Vy{Wz2<~gvg5UL!>!W#*Sh#i~Ox3qS zW$9R5Bo)JZZ!drPn?_!ak;5qfYOFs#`Q-g2=e%MJeso4~jdfsHmpETiySnpD_P_=nw{s!)bW3C9s7JXJ@b zdYKrDM^b{PrPVJiQxJV<$FqfJ+kUT%%u>YlN<>y^bH`lTSoXX0-g~@bOj1;0O7P}P z62R@Ke)K3~#IO=kYJ@o>zOn2F^X_iB(HL=^5-~fI0bM37U-5q3n90MHh&eK;#H36n zPu+2WG086|F|#wNL|lSQ-hKIfrx+t1rbNunq#6;KoE!gIpC6TbiCVb_l!#I$wJu7_ z;cw3R(i@L8Ayz<*)vv^obC?wk*?ak*8$%Bp6FW$WCS@-x7V`Gw)h9G`8)L0jVrBNC z3XA9&Ha@f>Rs$BRR2KW%qoKqGu_`H0&g9Df(2hqByQZR)dZ!vSWUm_1*pvSH$B&th zG!pGmgBm*2+s->}ZW|5B^JnMFJ?^Rvk!XBOOeN(0&iscBW7Ou5Y^l@~R%)|SL$}Cg zrRgNbCnK8&YT*qzdhyw<%^x*@H2P+lbhj4Nn59?Sp4xg3Xb+DX`=YKcF)@Z-H!6-` zYNum+$zSqZfd|)}PE&=d+4=IIw>%a~ry`iF>N<4m0UO356l}ISd^N2PrAFgpGWH)W zW8)6F89}X8L8WS;c2f@ze`~bH2-!j{UxuK+K61MQ*7SYIK=p1>{%e5|)|TTtb?FPhk9Jvw^nG%d0&PUw5%#M6~SANNGW(oGcER zJ9{0~?Np}&D(&5}ruA%!PbskJdt3QaPnPU%Z`_jrEs@s>mKoB_CKVYIX%0}UO#Cel zHt}a9q#%rlG#geT7fUl0T_BbhsyTk8Em-U{?F4z$+sur#z4PN8b6d8jsu7`F8QLvH zS_HY|wjKRK*DbS-86KnYYl)g;8(Y3i3F!gXF39u#I?srmnK7FiyZbggyvI40zDp%iJ6kD{d=^$$AQFN`fK3`z8Q|4JJ->MK zh7ZTasB)-_KTBTqP$X8v_@ni|!+A-b`p0h1SEI}1d;}i+k0Zbl z;0SO8I0762jsQo1Bft^h2yg`c-3Z_?rIhUft?uu`j!y8<4sB1vu&4CE<@aBIIQBFq z!kJOJd$lN$*zl;lEW9{>^XcX#Uqh5g3{hrd`+c^JQt9sP2)3_~cY=-kLC<}6zup4c zIA#Y1yRicUDT;w`x^lVw+DHt0%e&2|l|KdP=n0F%v{N7^j0^wpnBfp)!NJP*UFHsB z_94haJD&O3B{%F?igoQ8WlLhg8YO<#USk#k>^i=5=apZ*)X2b~LLhV3F)KdpKh6*? zcnzDS&l2Wdh7D+Y6gDA~vl)r0Hn(8uR%+3|#eJzHEj;y6^ z1UZcwDF$r}_-31Aw%*fXWTY^g*8k_4M)KUhbN>Xl|Ic-AatGbrZm)Z;+vIxH^|0$U z*H>LzT_diQE{|)r^8@Ge&WD`0InQw>oQFCWJIkF#jz2jbbKK#$#&NnM?Ksr2*s-s} zRs4SOv&BCwz6Cb~jx8Q3KB(AVJh#|vf7SkT``z}h*-x;?>}%|c?epvfxH0fh(YK2( zFWOoZDLSaAt*D~NZhOP_lx>IYYTH+AJbv?n!O>7OluU;5 zzPfY|c$Ma>UKPEeNGN>Niap^xTZ^%GFHXrL;rt6{WO$Sh;@~hIn|0NNvnhr}B{Y8x zb|BM9)Ao;lMM;#XwDNztIz7C>wCF*KFh_I#$ube`E*#1`{tx6+rt*~kP=7obBEQIH zW9s=2u8w0*ER^?)zhrnka9|pj2U2-g&!DW&*J%B?LrjLnF&y7UHfJRBqjqd1CL`g{ z#Ga*yG+T@G!(}+=8xHl`D3v*y`~7{mJrIqA_G6jXar}e!cp^+b-ppLy*AoFQ;gI>F zJu_Iow{J*H#AC&mwPXOZV=$5m#Udd`(bX9~_pBKkN<_q{?e!0d<5CUGy93Pq$w7*t zl}i5i25`KYh?y_A^!bduoEE^2x)_g{4m8$?{F4K*)Tn5BJ0tut9ij2jSS0EC)f^;I zu7Ps&>UeY_ET)IWWWlVANE53=QS=m|?T!qO%{?ME;A3LJjk7>)rbg|^)uC9^H!|`a zfnyjK0P-%oa4sdT<$H8>g3dBV#dI?7`olAFG7?Ck*6;UWM%wG!L(z%xWW4hD3=eS- zM*VNn;%>;fonFn1C#I0OyvkxS*i}aFr(3}>mLv0*V93a69iU;QwH*r7eRZ<90^wh+5>)UF_Z z?Sbj>2u5GavKOw%C=v_GJ(3*wkg~38KjuIOjER}e*7T266UhjQFI4xuk&x-5fk-SqE=n~~ zW7PEF>QFK=J{m$@FfwZTpcAKh)WI4{)%5ojbSWtkGOe;1OV#v#03MXOY5AfIulGV;GMGzN@mZtkSJ$q5YmRCy$VX^%wZAau2btl_oPV7OB&MDflZ4ecf?wM ztfkM~w6>?P#cHckW#<-@l$A*-$m6eW9M&bznx5PMOHM*&=FG{b%*fr5{IlK$}p?^MmEnXC@GNyWK;LSx{&L?s5#O= zE)V7!Na%r6=zirN^P=O0f|BxbmTj$b)@*tAe_PACG@Pr0`h1GXSkuN7%~mi=gMW22 zor*JK_x;hADJ3a&t#Su@^EWhbq{^#QVGRPMIV-=*SL-q+4LZu$bJf>(Bm5=yLNPd3 z&Ctq99_ZBZPVTD<5rpgsM7$=Lz;Z4Q!ubQXAUd(UU58?j*0S*Y2w*0mQage zJh6$KJe$*sj2fWa2(_Haa}sT8q5;dgbg5srzM>Il-L~3yD-{$DG>FST1vlzakQ%bm zp7)!j;|Sdj>v|s8td)b(5i7rS&!e)J;QlL`0rm7!Z?Dl`6-q=fpOt@1=P%VTk_R8% z7^DF!%@WnQqLytoR!al+Vb9MfDA{c{R)M?Ytmo9ym4|5g$Nu&=v^K7c(aLYW^&~Bx zJP2rGfmSu8xrJmdK3=1z^z+Iu`g@ID7v}RAF6AFn`4upk0WPfCGzJgGtT`nAm|xyg z^YR4Sv5rj2Kh}kRq4ob9XKkMQ75BsL+uRqpzwBP`Ug@rI+g*QhJ?{Fh>q^&2u9$1U z)#RGxeBb$^^FimW&eNSK=Ml~hMB{%P0geDifFr;W;0SO8I0762jsQpCe-i;|=|@M} zozT>`f^D>h`Y*z!sYToK&O1vO>Ix;t6QR;4uxV=6&QdD(+`Bs*YTFy(&DtT>yjQ-{ zor-S=Z3^YxEWoEs-O8PJ?&E{;G(EOWEJoCH`d}U42~bh#Mp*-VIni#&Smig-tlpvFakr}sjazM+vm;jsZuuMHsxjb?4xZ{(fYqF@76q={-5DK!o9ca zx2|(sYg{v(zi@sPYy48jqmHv2J&vN{dyC`6^XyOAuduJT&nBVI=y*H^I`M8iM^D7qv;R<(_-Qt{5NFLgir-KvGR`_cu``cR z%rmo_GIP#Z9Uo8QfKE6#l1$?`F3D&M156r#j?zUECG@f_AW|U{v9cFgbIx9o9vQ{! zBTs9K4%UHkDNf*!C9fR*{UeV%5D^bjQkNp0mC3!gQ3#|{I24KuXYtU?6ogjPgqpwF z4O07q6hv^y&w}Qh*}0K+)aXeoggI3A5A+cjtu<;M0*4Gd{@Rz{e@21i;m7X}&0I=M z^?;J4BtOq0F?ELYxDA9_Kq#U|oIRV?NSc=P{+*HA*R;4L?ggn*DSrx6r>{P&wp9m7 z|Ak8GR||9ZdcMMgDCJU=eCYxDoYPjs0VeUTi#IS&if5{6M~rqUMxI&X_f(bNrlzUU zYr0(`5o)@<88oN_fu54;S2}R90d~qNaC@Ws_3iT+3tdYS zw;lERlh>ZP8f3bSWVRdYECC^Okcbb6Ab?yC6%-JB;-MQp_`Q^;rHO|he|BE&A94`f zmPxS5I~Bnv`%de7&PdP)4rdz+Xe)J7({)lS5od{%t30_k*rG5|&6;A)3?<*LH~{@V zOMi19`BK%ZsAsD{Yo#&$$pBh41egeeBF6A!DiOg8)`1D!h!~@Kqwnjq-jmgv9JTFO zrLwBP>gwoKZ;Ma7e?^@Jfzm@Bli3$G-6_EqYPypWp_ZiUJ&smeqpmMhJBnKBD5wV| zoOQj|MBl)gR!=}>jIIsL^!a>B0bN~oeroKb91%AoVoTFg4)wrvaj9@fs@#yNuDyGN@Q;y_;ZR1z{ z(w-xCM`3stT01l@`!h!N1CZK6V`}3oG4o8uHzhYrph7n4`|JW0PBzCORy|T=rPqyR z4}V(X157U!AgZC!P9CC@^nBNFyoQ1Mnmg@ulnm9omc)e2V7Ac zu#SldjGL_uTGt=yXF9XB8Cs6!v_a`bb?ND<(7CU_e?3iwnvrK+;U1~<4y<#?8a2?> zJ!L_+uV5#Q(mA@iQ3D+aKWS>7s;hhAs`DlbcS>+1lc29z2!xMJCsSBgqzs+$&-Xyx zGZI{ZoVFTsx?a~4K$1*X01$hN?L}S=M0}9uSG_<^Y@gEhsK~otQh78dq zp&kYbKliHBGt3#!y98Vq$Vh{CNF{^mPETZbG%|uqC(2$xAo-4cvqEMeMwUBIdGOn< zx=u#n=8HNqTI@pxzjM(=7hNosEtt6Iujq1e^zuP9wqIM1n3nXN%3`9IZ@rJ^9W_cp zN~|AYoHpo_&42gsY9>scnw&IY2!H_fHoBUyP9~6}*$ft#_IY(esgx20UAC2u<8YaR zr=`)OOJ6r(QPa=S?R+7C=8&LUd%M`}T&=D_F`-Tx(N{ON>e+eD@qg^S zd3>Bz^*^4;zNgTQQc9;AZD=}8x~J*#O!hSU*0iONK1n9YkaQ*_nU)k0Qb7193MvXH zAVP~MqNr>t%Ojv5f(wFzipnBetAOmt@_nCk?=#Ob&n*?L5ys_nC9< zJ@?#m&pqedbC3CQ%xugpEAyv)<;P_p$6P0n?F@tjiS4%?GoIKsrN{Z(V)l|FZmJ^1hSTl=~F2{1xPUC1-Z_53++< zzsVZN{7>c=Gv{X9n6Wwi_vw1t%V}pKs{Y#4vXtMXbSJ->d`|LA-}imNq{jeC^%utS zc4J+!R-9f zqo1qzYMc~vE;;n-WkbNUx!#HCH;I_A;z2}bM1@Kg+i|_R_{twHbK=?!T){>su3vlL z3ZVsvzfmHS<#ud`?(OJw%08<$U$EixYMocV zJ&=g65^H@#;;Z^i7Ta-o@Q4>L-tUF0Z$L@L$|wqLcskxY$);-y{_v6;zwp4L4?#dE zo5ZDdO#eKq{ukGObZ`AU5mUuzbZ>W8I5MC@Mlbm31slH3+&eda>R(QLr-3`FTAkc+ zp9j9^IK6WrNDUP-Xn|&y?4~(B`3V-Y@^p` zztamNlJt%$J5Q%lJ2hV@e9$<@iOGvk?(oDkd;~24QK?jH$Mwcfa_fHL#N{O`f0~G^ z9D+kR!EvD-kH=iSp()ih|{M!_RNnF}`s4$>p=1E%Tb;e(ZrUJkZ?^ zIw@y@^6-G4U$EnQ=cdt{q&1&RN+iL&_~UjDd{{fHRXZ#KU48b!fm1&%Z0d1YIRWY1 zxZNq8Z}Y-5jHSu$@R3IxqKf$~k5RV@=4K~Ny)fT;1k6Vqd2!4Mqc3^v7vFltiP?*~ zw|HUh9a4|J@(`8U`muAy!R5zZ?Zo6YB5qE^6pX+%u3}OywBhOS(3pow0~5WNDLsbQ zEEc9!Yw6J#(j(n%$Y&fI6Gcb~j*Q^D@z_tf@M2^B9(^p-=Z{AGsEp0R8r;@+Q^_e; z$w6@vkj?3muCpw5PhNApxd?-hkLdoIP_z%;@LuG@#THdOL9SbASU&Pfji#FVlNoj< z_I1

6$sPi_+q0Rd=I)YIL+a7&|?TMe^uGw`c}G_3P$S|CmU&9dCk zQZkw4Y|3$HJ3IfnJItiSqHACSi$C!%^Y7JR1ub4%ymC#Ezn8q|eMB|9WZDn>NV-n! z5bryiL0l}|>(JT-8)a*SqxTx0?6#`Lsuub$J$3$QzkkijwOHmB`*&LqSNv8mTr(go z4LTtuNl3xAitf6m>gKpVM-pfW3YJrWWha9FO2C6LHf8o~Nf_yZ{;*3Q?g7`!i&cq6 z!{qwIoa=D10CZhDIZH|v(T(5yK$-yK9&93Vsc9G7E#25Ki%d z62rpj;fKsF_-xX`q&-Om)AFy+-;noE-mcukx#Ky{=j_NnoPBoou~|1|m1jPhd1_`- z#+NcqOgGZo(q2gWG;;P|lUkheV9Ji<*OR}HywG>6Z%fi&lJ*pQO||%UJ`aJ0rBzPR z`g-EvZ-eb#Fc|sVoQ41@i_;lq0FTMgOF4VZ14}5f2dg2}+Vz%U<=w)!m>E9ie4?ek!+Pdu`;=_g^=eRz2mu;(<-yJrOap*)1;|>c`2BO zJg~r=h4t?dRIrx#8@6_RTspp#h_QJb5h~+)cv!`N@fU3PIx`0D+Ve{%cX*BC7d`L| z?}j&6xgu{C#Wq|Y*R=6MA}(ldNV%+Pm?*VldS~(9%KDtG@>1-c_rlZzFQyt3mD(_M z`j>tzbKY|vn8LkL2wkPct4WsIuyuGWKfK!Yk3?*ZvC&aoDVs#84O8dw70(ZU&PhQp zh4onvOwqk+&A5>Y?RY+>f$|wIJfqlgt6t(XBKVNX?btkIp%?w0_P`bj9YNu5{CXm9n;68;NLwljUnPoDKKbHG?m-1b^Lp*;wzI*zVMoh z|K^2lFoMh|M`)QSw_)>IHhJ~eUp=t(Hej8h8pn-XYQxmwq0e~DCr>6~YM4;-AeGs$ zbQZjF&e2gP^}M9*Up%lN$yjt)NxTM8Y{#|mANgBTow&Su>dzjyLf!4LP)uoDYQTbx z%5B)Zw9m;LD7oE3P9^tG9_XNebw~TVv1z!w3pU=5Fx`>9Mk^k??&sGNEec5|UbM5& z*>um!Jn?ZVb41%hVrAS$hK{#C2Y0%&GJ8RodaRPAlan2Rk9*anx4ShK?rwpFO{wlR z=)Hct{J>p?L9RuE)b|>CHCgQD+M&aDYKed71_KFSX$JHkO;DIwdK7IsYUN4Gm zxH?|nfyC}kx_W7xk9pui8jbKobWrJItv6q=;p_B}=w4&@QBQn27RM@K1Z-4n!{w!S zdg1zgBCaiZ@6ZwGD2r{lyqst;@JU^#lTRK=#8o%0BZdBv&3@vY#34HMvVZIY=S=7koA8grtrnocecF{=&RF@)~lV&fSxnn{#!} zy6i`?`?B87`a;&i%v&=XGM>)pPk%4{QpEN@oEA;XPCb~qIpr@Yds3z(e=oVg_q^{s z-|#UHQcUa1Uz|HYK38#Med841OnC@GNpLfJE8vl`x3f zF+4&RvpAtPpPqd4nO+#?Cty(aI)cp|UGd`c_SIkOsh|DR8ZW+@=f+T>Y(vGUzPBHC zU3)v8{+WFhUH{6rYi{(yLMBqj2&rhs6BzwW+m|&$Dx$-&-H88oV3}?=vDXh*CH41E zr<=hdveV}#V5wJP!S)Qh_~>}YVRSfo<;p==9_#Pd zhokl`d1mwQ=PKh!8d~nVxZz~kCA@!0cFF97mMGcF=>l{GbKTeP=nV<|*aYa+s@^Eq zC$N2L*ulIn{lP92+vbf7_Iio;SqWHzYAmBj@?)pdyJdDG!pVnUJ2lO#GmdfN2sWs2 z1jh!4p~Tpcyz{PInwnb;)uYwoZ?r8ILvh!89*yI8aO7F8B|79qsyfp-u-=y)gBKjzB@3 zO6_g(2<-6Crw^uhVS=x4@Cc3KVjHfGe_fkkIrHkRjopw9zav`=Xt=|GtcOK0Bkh~;*UDi3Sm!K6ei?R&%h%0b12Has03;SL`C zbl^h|JmaA~p~w+L6c^iYdHF>=`24^Jp16>G*C~3f09|ZIN2v{ym)+Z|RquOZ(npWj zDk`?&`naun&jVK&wr!<_xSdOFn7k}zUhD7wcwoX_7t~9s|rey?{9a0X5KY$ zj=%U*hQO)W|JRZ2Md z?c{Tlb9|Tj2-yGpZ*n@~BPv|+5eI4g;AnG2Lw9vUcXLg5ms06R>c`mb(0CEd36Va3 zUkr}!-Xec9(rFAJSSwWIhki&gx{**1qCjn&(DA1#Y=V#XN7YDw+5Qpm;aZaqrD9F1 zGe@ObTDn`5rhpa-{%4#mVWeVp2*_tz?d$c1Q_gC=oJ^H#dnMybgw#|A!ph3-ElOpc zBdZzVmQa5`=2fT8{q#!vG+lqruj>zT4%1_`FwRNws%0wx+GSLD^V=n0mB9@7E{XIA3zi->sM2y7Z@B zJxVKK2hJb}tYolYA0iqAfsp}NkJ(x1>7(pDS|4uz!^>W#i!E-1U6m@*lBwU0;nlD` z0HAAWX4B`rR)2K~7}}K>^cXa~QM=;U@#3c!KDj(T6k2Cp^Za>UE3?`JEXoysmmV9@ zoqF(7zqM~asbAYNGuNvrWSnyJPM6Yh0VG2qG{#P_r`Osw#rn_O9m}Tqv&0O)mxGL0 z%!x(0knMtIEMgq&cwYQv`obqIlC}H3@U~ZLsuJ*&?*v4K4NGEPe5NUQ-eYJqMPp#CD!-*&4>S6B~+7 zf41F?vG3U@=KjXZzCgrrqEOmMwjxo9Q`Wt-!M=~G^@hsuxBFvJ|4f>_R~i;xyI_@9W3&WBN*?RbCt#_z6D(`JonYZp&$?!d*O1)o#?elL z)U!|82a$U!;+O(oJjd?lZk=<{@ppPPWK#kXC405&dncTs4_Q~(W68s}oL9cwOGa)? zz@Z%W?HKkpQgyueJG^{Pv}q{%urmKNnOY#DV1fp$)L$1Z%M+oyfwWUn4yn}9;8L(@?R z$OB^U@jo5ozt2h*Q`I=U@HVghSd)N6*&ps`!b6V!X#4VtZ}0IMeyiOWnw82*a|DM+ z+2_N~WAp1SCo?WP={TuGKz!zjRK?u&Z^EtJl48 zr5BcE30RbD+@M3oBg>MVk)Qs(eLk#z|GE8{UIZ(0W7(qYmc&Sej+g4}Dt+rM7w(oIPPMfuO>e<{B@@AbT!^M>>0=02W# zN$!^1jGPB@&PF7_tJ&YlJ~=xt>yE6^ta+J#%KTDhO~#uU*Jp$?7NtLy{`vHcX|JW- zkfx{2PW?^l1*xl3{+9C9l%>t#I9ji`xSJAPBDX4S|aYhI#sp8q8IEQj9kkE+R1IX)0m(uFC2toUCty_p7V)bc)>ruu7;i{iL~!ImF#-w? z=2_EcAypgY!a=d`;8%on@&H5S*2!Q3g0}F~PglHO`jr~0&r;|3xrC24a{!X(ERpD= zllllE-{8nTTaA`YpJi{?m&Gw<3P7Te>n2a(6OfqgOQzE~fN{3}l6i8M0+v}!(9HYl z76H#}A>jE;T78iZxl#b*GJ?c6v0?!x#j9Qyn#{%q7bKF+1hy# zoq(l+g(8N7>r^?UDY@&?MbnS6kC`vjIhoSxy1FR+p3b_OCaTa#jJ@0`$v-bouTs=P zmJ%TAm@5GddCgMRqT}q9xzIebQ~>+LL7@y#-utB^jn$9Y(`Vad-?@^>y}%I++c9yXQd;2AqRUIq`2qFk%EeBx zb&fbd&;g6KZ9w>m5`riX8I&#^FEIPX;bvZ7LZSf3=+i9kp# zB>+^4<2_}oLL0u({J@P1z2Kb9aFAxS)YN9VP4plR=l;_roI&5NZ8OsLlXzJ^$EnSp zMdu7U>Vt^@d$6Ms1|v=a6=2Ho^OAYax#iP*ny2IU{KRiINSyZB^|$~*e7)HP;!FVo zF^sFtrgT>{x3>h_1SBe;x(G-eGM<#g?P{=%T>^Yco?Pgtj(o#fj?D!~oZjpNWuE9PfKgx1 z!=84#MA~6aZzZcO>Cev`koZaadjbwA;d{G9Aw8jgvm7i;R3v4}CZLPVr?V-2+7Q=QXPSY&F0(Jmo`2r^si;BccVB;Jvw}PRaKtxsJC% zq9+b8ypX?6u4uLb$kHn3LjDPBY3>~A)^i6y>oHC~7j>iM7lE~p_{XgSbX{QM$F@7c z#vi9i*+$A1a$`7@tv`ZQq3ydM@-rtiVIa6#ZjB?glH{9R)c(OT5ZLG^A3A|a3&B;F ziRL2pXv&pi__~@#X+#US~=!7L+Oq1SPuS)&Sv|iXM#g80-g!y8pkcZutAa!9kApx9BeO|NSfs0pmRp}jcJu|w$Xg*fM-5TF4!gjk}^OnYG?dk#|;>^ z+KFdQU~IuK*Mwdp^I^*-;jEnX+yT*gob-&WU^^;USm88bJY+Xv*y;xLOVLX1H zXtY<~{>rpr*x>Oa2P|R4xcF@~!#yaE*>$#8K6Jv;M+R}GLjL1wV86r^DJ>$lYRQKV zVDi}_X-@Lesva;+A~sO`$N`9-td|N*Dai>~60t6b+YRo=`RSr@v54cB@?3S%8j>(L zu*D&-eqpJGn9GG87}w_H_eJYoPy_h6JSmsauk!QBLvaAsDY|L^_sR2g89<4jPbi85 zu+G{Q0BC67com1;`Ciue*?zr5q$Vn4rG%a!g*RtyDr7a+zJ_2cVWD##xJMizgqm2k za6WAaOCnK3VB|SNxr3rg$k&`wGSew3f5yK`ghM|U#}}1JcJ*5O8y%z2Y@CY^d4>@g zrnr!`5x$#t?Pa1OUMt$WJFp2K*#n)%78@{G%;4mG(iNHj=w&v!3lsHtDCS(LS@2{j zw^O{BQY6{mtEG2}Q{f$ivVe&~f)zhJUQ~=m5*hRC0`d+%EM5gk59@slh;B}kDk&)# z(kv8ThW=EZ`=kIQO9_;`#cA!LQrhgF(%&6kRQriMGfDwfmJ(F!a4B^k{8%1Cu7D;> z37WjcdF29{mrdbzNpLS{OtR3(I5ckG#9w#GhBj7RKIdBpQW%)aKXO~=?w(O>gK_}t zL_%dGfm`O6g#=aJW*(AK%?sGA9pP~(`A*)A1CxaWOy1^Z9S}97gRaPnXWv+L%TSnrTGC@LW^boCWIAYicJ%H?|d5yeNSnkUK_4!@Q3 z$SVSp*8=8;&5&})UFTgPSxB(t?RqIPylVA>=AIB-p9)Z1#*p|f=c;w0R$l#gQ)3uC z?=tkp`%e}UEP0!9`7vr@eSb@AI2;=Hu9hexP~tA>fMj@D50kUS&I#YcsOSsr#zrY` zVDVyt7yn{1gBNezSbs! z9GU;I*WNy>#d|@N5h!ujmZ|Q~?;sl{29OGpC}dFLHtFma1TdD@F6ZU9gK9a!MFfa% zG9R-We_h_7>qSdE8b`kug}(DXd|XsStNQhyA~S9~6U*otUQGY*ePkEhlC(bQOGyR& z1&eX^-`DfE<{z8)$GorP)#N4T-ktlY+|ry6bMDHS$XSv7diIUk(d;ES`|ql(?O8K2 zf0ubtWOoZ{)_14(VUfu&3SbYYing4PBjC(j7Np;6_2x!?&}xri5|I;w_g6VT~JNk=2P+Io!bp zNmZ|$oMT!haigflp;v?XjiP4{T_~cWlx;aF^VoHwEx4&cTQ(=Q<KWoy*L?TOBGd7z1d?L< zS^b#`iaziFhkhs_B*%k7aHF9j#Hp@|JkUpx4oVO{Gr(c$1qx~SK$37o0OS)Ika1KXLm9-AGP%$@HIJFM~pqP~P=5NKG0y3W@sjN;BR-3FaMN zb&(i%xY>xxEKQUk_dSJ)nyoSK_U> zqZ2o(N_@)o>%>Ypz$gUreaA=-sX_?)-kfPVN^wI&wj`09_udTWuL{5$vwyWh^apNA z0boHQfP4PQ=0~Rp^}QC4URZf7tf06^8Ir~ zSc{^clmE*MZ}GiO@&D_R-c2g_alsh{Yx7^tzahUr-=FvAyi4;s@(OZ)nR{;T=A3tP zZq7L^=R}+c@U85gY=74CSyyNEWF3b%fXg#?X3ofXBIC;$^%=S8_ottez5y11YtshO z=B7TL`sLKd)G4q4oRd<9GXk$n-kLns_k{0DzD6Lt*?aZ>F`rg{%=eD)T3gzu>?bw#DV2L?K2tv+*Ba-B4=;s%mE6_VXum%~Ggs<6F9 z0x_lC@t-Lv9~2ds{wc_gR7ju1UoN!$GGXl6K$H(s8;G_pLL6TBXd^Zwg@^k>%2u3r z=D@k4CIjcT0}R$1?k+k!V^{rfC_17e*M}O;Htpr-zVn@Lzh$0)Cco85m@e`j`a{d= z75*d7y~m$>bMk8eKlFgsGB(kR zh&{zHKK|T`eLt4HMmMMqM1Deb?!8zzG?h@!O?mbhL2=w*@t%s=FagRvA>q|@O8w){ zoy>^J?n?i4v8oF9^x1!$$T~JC0Ovi5(%#H|s0*CqU!kH$LHP|Cw~2;i+~&=JX>X== zbkNrAVSkAl%#}HEBF(v-`j|M-$;fGMyqa2zOyo!ybfoHplPg7ak}ENprY`n?^YT%( z6v#3mD`Sqwg7Ut(n)q$O)e3sN0V|XJw+Upm0hz1OQ0nriz&~!P7>tch#CAvbEUUqh z_hVt?C?8U4j|Jro>7$}z>7xo7zwz|zL8luvmta(tiJAf{&p z-=;i&v^l%t1~g(roO3Mtx?dObxT>#H&dV}qc-(lK6nx#w%-Pw={3+*H4n^PCshQp; z1z&fO^XCb~aKIrKCEAjxJo(DV&Psl3Wn-4a9o4w;w!-3UTa zHaLHr*c2O-y-A8Htbam!h+Ryda)NKwWr8W_#+wT3A9wyZu?h|-sw%{!TiIQOMR7kf z-6*Os?)-6L6&z5!SDU`|N11UA?m8^Auii1nJS>^M^;2BGPOO9j%sPOfMUGRB`ATo( zkOOxO7MS4$r`39En7-2Q+JBgc+y+50G)rqmM1;hh2x5NnWzqwR8wHSc&x%kIC6IaX z&=TBGPe2H}Y<|9VbEGTLH6rF(PB-6~`43P}kgeaj9PzC?&hhKScG$tdi$^Qg#I>Do zW&`=!RqaUrRon|tHvr)wAZENEotsK1560b@xFM1z+8uo}&NX8Plwf{oI+DYuEBa-I zU-8%9v zbJHC@ag4W7!Z+<=;h$E5xX<)lx3N8!y4cm4X+<*nK?&pDkFtdNraoYL-<3e_F@5p4 zdh^=UJ{jX@C!Hq&^IqFe%_bXxC84m=&jY1q9l_$gYo#H6@rzw|S`FAlrrffWamqHvJmFxI* zf;e)30YF;+=jC3JRB%_p=>@_3f9GG6U!9+q_XyViJM-q}{vJi2{Cz@!PblyS1wNs` zClvUE0-sRe6AFAnflny#2?hSIQ(#Tr^qI4gcv})Sw@^MdoL9f5m=3L9Qyfpvrnkw1 z*>McjL->0b&el1l_?d9*(R)o*T{z~wqoFCZ*IyUGIl&RQ_Ygb}FF@&r z^?Gbrr}mcEe)=Qxr`O_;#*qW-@}|$7D=LgQ;rM$LbeC6U$U+Q8`)r=8VJXB7g{jt56c>iozCopgrHN000@02yS$>M zu>$EB$M5|%PPDgoU0-O-KN1c1jrl|4{@tOm7&b7VD@rZW1h=&{eb+jrX8c)d+7HZ*AARO40+Y^K zESiqJjCD0l)m05O#Vc2|x71d(Rry=$DuQj5R)b6PMT236ATMvK)4;Rtrt4~J^sy1O zUo+{8{+^kS3K%mVg>^O+Ardb4RQ{Q}YwOgG;zh^I-#A}D*f^io|4Wj-oK$dofnJcE ze=t9kKPB(BywBxL%l&cgMD7VWC+Ez`HnPLnM`zuV)tj{-^P$YWnF})>&bTO}IsH}a z{BKD6Lh8R$zm!^<@^Z@eQ?@3*@B62(7y$q0f0MIwrY9FpR%PIi1JF_zSLhQs0NY?dorOKna ze`|PbTrcti@g7{NqXSXO2@%F;yFN@G$fxQ@D2L8ZqJBOTTaQsm)ZY=txdq~OE7IU% zYy`9uUSSs3R(*CO&Ns_8Hau}T{=R0cJfCV`yFVY5pLI@|Rry5~dPMKj#iyducpMzY zR;h8l3{?#yFk;Yeolet0f8P$2)Y8jhCvk?j{-uKiVgd-c&i z$qQvT{1s^rddonPu_1jN?sDX^F7t1X4MigXt>Ref%QLjjD~TK%4gKoYLm0b8<;nbg zTlVziIgJ)I7FOuHv2iRKF|P`W1UA3ROwq5M7+@~Z`~-gFfL6R3XGbh~(+zk50QN-t z!XUJ`ssL;A@bfqBxky_UV?f&W&f{-KowXe=;OWl7&8YG0IaZD5<7_+7I4my#<0zT} zA9~nGmKEIauAsoCzYy4+b@=_F#n$iV;fF)vi0-e}$D;Q8fHwbr<{2#@nrO`6ip_iT?7~@BlhWH?PVjR$fIdnyXdM;ZD%jaEo_po3}HwcB6{3x~(eCC7ud}#izeg zAB|xzFs2nH{3+-ObcZ&JFB`R;Getvo{*kYf$6^rFO)ju79B*=U9ViJg)7%@vr^%WV zM=n)V1CQZ)9zdi`5L0#-5eN7ZFcwi0F(8v=-CEvehSb{L;!00$paHsnrd78&5Dxpo z!{Sqc%O>iO*;^ljC?ORGi9G!Xw83DDMh11iZq=iRc3@){Tpx1K)FDsz7)CKvnce=a z`aT}2Bwt!WeWOu7&bp?1C=aN8@K1u7j$>XbG}_K4wm;1%#UO)t=|Rse?y~BBTzNFM z2a~f9+m0`)mKY7sG2T77A-m5L& zCrGkVFtvMp&MJ=%hxcGmh)cj&BgV0@po<%3w4TbGU^LKhf8*Yb#Qd|Z_8n6`h*-3U z_zY<4f5c-?+t9&iwXMr}>}Xw?%tl-B>)G|zuVqQ zd8`{v+nHP20Cr}L1$IVxC=!nFhZ1B4$=TM!+7cm;HoqVRWWMN~4r*te1#&vMF877R zrxNILK_qR(nWCOsn^^i9o#!(#-OZmS^-XzEf~_@JS<&iVVRqJhB+IY;qc)3LfBDzk zeL5BJND9eIK&!i2{Jvp2)$dJhtr#Afwu_&)qOF)^e5N*Ybh$p-gNbm=yeccUh01eBC@ADq7ve4Bid40PytPI*7m*CD>Jh2HGZZH9BOUw_eXI z?RjE!qfo081Hs+%dBND&IHovx31~H9F4SuG zi{C9M5Tq>;G?=V`IIq~BV)axm{}h|}byuCLs&=S~OpVqLWe_Vce?*UshkLPj-5rJ= ziy!)XNYBzoCu|cz19nyWYomLSA&HgdB7bmfaJQ)>V>it>j-fIY>VQ!rSlyT>N7zYC zVvg<;YJ^(?P-G9X5i(fT!JFQc`c9vpDfHaj?q$TQGZT%fxR zi9V^kj_aUR{g_9iR@1`#v;$*cZnH(%tl;PXlwgSN_>HP+M&l|LpT_F@nPrW(5D#2q zivYa`pjVDrpfjO@hX-O}j-Wvck?QdX=;TwV^x`c)>Ar2DJ{&=&2ejfVSTJa-h!B{e znssq)T+Upxlt%RepD#ICta>s?^B?V{zP9cH*WLGFL(VFB@+58&wu+bzYB)4Er1HdSQ#it6Wu_8@O7)Mc;L0k0;w$awjWJ&7o>(n46 z86QPu`GQ$>t&q4?9o#XS-y|r<-@f@hs_V#sK2WA`yVW5nL8$2+gw+zLbTbKCkUx6e)lPK?-_2e zKCGoEBZ#~x!B+fM^ix$Q^QN{UCa$Z6h^YZd7A&$zk`(M87zA7_C?mGpfVNR~MFmZ1 z*&DScja#j?{e-KRU2s*>{G`W{3i|Tz$&coz=Y1*nk=#u=hjKofvkd$FPtMNGx-DyO zmOu0U%t)p$Ba;4N`d8D}rhPhXaq1sazmhsH<*wxSldnt8_uT*>|F8T_c0lef+rQEx z&z9=ZPz0tk+W#L3jfHjhcU3=FR)qFwFOqjmxb)~47;rr1dUEuLLrn~e7PCR(i>ftR5_S5% zr!*<&jru0WWz-7cIyr;ZACoo}vbGw=lirZ{RDdn=?}mO5U*{vdXbgkXzeN6M_r2d9 zAB~Pc10Kg~A(-*VE`yWPU`60J3jTPHPr&2yeR4w z&>H0&(t4g4JSzodwau3@MJG3-xrO^}#+>Tv@Tp-7ob#J)dff^$h`%AU2ez24$PA>* z`wpC79E*gD{No7Q->#40U@cgmqOlS2q#mZ0Ju&-}20do>Kl4Nzm}xiiR0=~^z*zMg zA+wf{9E3{RKa1pIo6%p%%X~LWR8{LZ9>@H-F*fD-G3Eb zFa|-h%r+TTR_nt<+}E;_?(hC3jruSxp~fgjho@=IXz;VBFlt1zj24ZBov~#xcfWg; zS5bvcBhittZe9ag4)e=OZJA&gP5U%ecdl0R0biR@YpjIgI(K>17}AjefVikCrpaa4 z25r?T0^SCJ$IXDjDwwTCaUzJgDB&#;MATNy63R>YIx$&PeTy49xfTq#d~&ZPsI;on zVmOr?^UkmzV;KiaCOl9fvqV)}IO=a?J}eJMhhQWOMk3LkXrzcnTzIS(PpXEaJ=k_o zF&L(AB#x@^!i2Duh62V^N#7}QMo*R_=LFH9Q)v2Wx2nClY8Z3z@E)@7*=|);)fPxC zq)5mkW9y#@&taqUMW&Nm-`rF+FflUDA4-s`pCM*CplL5)lHXaVt@{x-K`Vcqb&AOp zkb3rHiNzBet9oNxUvW_Zw#Z76=Ob*>k*x1uVl(cLtp#S$XrwS;Oykj-oo00Xfu~=i z?O~pMCyzoU=1rDbgxgT1lNmG&)to<;HNY&2EkD*{? z#A_?|g zLnKIp?((m-fEA|O+%Bstu*jqTN`NaKo%@W;%3Up0+Z=)I19ntcY2>y0QWrV*GuJ>-I#$aQ`g9brdo!iXl~4 zaqrE_G8N*@udsA((-v{{&oJf*ac!iCdCF~USWyv$zU{|hhq`sA0VoY%$mey>7cnqiHZawQU)BF0GXcJ5xcP%W;AVr|DC zN|3XuKOt1}X!L=N=h3uP^F3|Fb&O;3XcnqLtJcfmtcAgOOkPxgE!h=}oEnYkn3~v2 zMVNR}$xW!!9J>uYKw=sC zH#$jNKe|?Myp;iZFe17kjN>x=3X`P-t%OowR?YyJov#_jNE zK^^CBTzm0=*5>>yU`&ysV7aKj(OH7Q2y;NoZFH$6g{#?S+*?)=?WGO7^&v`0H&AF| zwi@w~F9eJwlIIo^t6_n@t(XU@wrw-I^`46cfpgi(RxcJ+3_?#Bhj~t7bAPvxiykta zuEtU^QjB?bvaHdzU%))5ofM>2x4C(6DHM>1&L1j}TJevBl-eRyy|w|SleX(|Zo{M> z{XKKiHiexCc*7z7Pyx00k0#ozL^8eb0@c$1aeo|iQ+}0lddm9bN0TRgxBHeS-BEBuL8xG9(txYN z?)hr0K_7=(M0~0`NvnTMP^B@4*!HltvViHVZD0YqaTIi2aE3+KXgg;7L4Q5uhi>XF zq!aN2q*1m?l{%HSfkfryU(+h*a|dXr+$i{X*8|MQlNn&P1$O6Qgq_&}ML zJwR?=Rb;hzzgmyLkuxBIFPog}@i{dM(Nf z)$9B8p+Pc@S$8(zHiHCWZ^#4O9)h{HvR-gq{f`Ap)NEqaQ|lBuz1vlH>K2&X^@#X{ z-7O%Rt=%LfZIJosG_B%WM2A{;v%_1kw21JBt!6y?nX*+YnJFf^nslCgwNow=i^<-b znN>c;bMbVm-Gf`;V1aHTFDkeeKQ!Xx$H+K^#*A^#3l}hb4QNHIcNS_Zc?j+_I!@q9 z7;RT```qmrs2fL)dHzu0)q=WU?HbAIGl{;(->$8ApK0Zm8U1x*2+$f9pGu$`#{@5E z_cAZU4Fkc)8Ms@Y57l9#I>;<9O0cz(_6@Zx2aMub%oN5n`nu#zx9SXd`f2oE32>v7 zW#vEM;h2reN=1Lyuk{(0-dpsg0PvjZcrkE2<2CP={Ev^e9w5tzJa>Ok(=)KUT!h1rv zZ=_Xdbb^c*ecRc&jfR|aMk;@Z95=@63y|u zWPqQ%s7RnSzRN$?TBWOK(_gvi#ti1RmG1RicWo?!XqX9k324>g{rI}B_&BDewnmVa z40&^HK`*D&LN~{x5*aXcqxb`571zuYEnag8$=hk#PAPGAiV+$GiaEB~@?=2liy`BK zc~t?nda50f7G^gDv_eVgm6tN(8CwMd8trefgqzF;!sfFqakR5GWCd>dNwhV>w16mF zGni}aBVSNe(P-Syv!h|U@|$BkEVYhjnHFy8bW*Jj11^84K*l4mRtc$OwEau;cjZ2 zR;V*7Vb| z&_muRK`#;`NGo}iyUOS~Ag)`PtFqmKa4R70rvGYyVn}Jre*2w1<`c^9Fmp8OdqoDRN$@AAQ!9@Cx-QEIgY3ZanKka?1hL%IDIg)jN>b8dRRbE z_%h^L-7vnvR)_^e3$g^kNFgCK=zi=~4dZ4d!YqKFeB?W$*eq7wqA=KFbLtDPvBrkN)9kpo84APx4yb`n!?x|;@_ zc0dlX=O=!n1l>?fuujuDf5wb>i#Aut51u_{P1;-xZ3L`0BtBK}tbV|8d=#%2*FfvY z&~N)*8SM+fR~$n3#NWYoe(D$&LI|E1_XlyD6SN%dn__&LRzS(;+NSkSq2LVBes~q+ zO0KmgjF{G8xas3Js`@U}%9#zP8PiDuAhLKW4WWB3a?7Tc8u)Q_{!qc%{HC1LPGFs; z&Bzy5ElG5nTghogW*^L;6Y`=0tJPd1MtQyH87*6gJ}n?>?grab6N-)wgmrmQf~_P4 z1V)FdU$G{lReVa!eKkUuxFu2}J4b_;6FTp+<*) zgFjRtjamH5GqhyUG1_r*3@#Ir$i0joZP24w#}eB}tB1DcY*ya1?P(Y-SkCWwfh$*q zVKdJbaC%z(#OT1pK3o}Ub#Z9M?`q*AfW8zcQC~d>} zJY8vWRYWltD{b?VjU7yyOHY@cfslJrbtrGUw+cJ znGXLaKin}OS6~(0A00L=q|R?DY8Vbp2S{jR`T5VYaJ$QH(7;5G$ zh#{Y_C|%C*_#>b#)`bjPD|&wOeS)p0xF_k$u$=%WClAE*_>HPQ+5*Yg#pTS3##Ujo zHriidp+0#U=A#AsZGOy4X*a-*5Y2#nwp$efn>0tP)d(cEX?etq8AN6ryT=)mEy?T& zn>ZgtT0y7;mV8IN1rm_S2SxsR5`dTntT)>9Xv{44(>%}~(aGE^K?IEYcUZs}r6l>G zvh_`67BNCX_D)u#$&2l3#8;`E$V5!xUSZwwMcwQ%gz!NbXhC*J=n2sYOeVH=)y9zU zHQp!$oQ6i6p(YiBt#zLc4Y-8zx5xspJ zsTLvrX#1R~Zd_ME5eK73w8dRQVy!rehmv6~y`<~U?Sj6YFn=HpTUKpTgl9&rBZY;jwl$BXfqU}#Qj?Bt8vLQEj!_^- zc$%Cn`$l=BX(7ROZb9|jU(Ru*RXn-%qm@ffqP`b` z(LDm2=BsWEK0kmZxMbwKpp_ANxsGu)1|iyEW*C?X1BQr4Xc zxKVZs&!)ygp@(RjR*TuS>KtyHJJ#b1Fk?k~d!zEA0;`pY0kP0nDunIbukf^6=&tPN z8>5l&F>>pSTX#yR%Sl*ZwNb(Z$Tpfk!}7vtdVz0&5h#%cH|M;d=QC>CMdFtV4yt(#`ke|V>W7>fi8;jqlfLr8ii}sBoe3{ms!2wK91M&DWA$mdH z0osm$xocEE73!?9_BY&4!!K#Ls>(gL{CSCn`fxt=65YUfMDik*8^84J;~* zRieYph$A=fbH!}HqJpB?ca!Rnp?_QP#F4(i}T1yT!cqA@mCD`$wc+KIp8c~4tWz>RS)KPCY! zO#cJgLivl*WFFkc5~-~nB}nTIjyW5@Vk4`0RaMEzAwdhXk6-eCYn%AqE@qF(9E|!o zh^dOtA7=q1+y%r4;;I5|vF8YFCK|)$^ifRw_z_ajl7^u7=!1UN%fOX;^`XG#L$VTc zfRp3=?6iEuihpMi^5D z^f742t|lNP4?F@N<43;%usP>{nB#}{ne5wo&ZbFJu)`C`~= z3&cor58u5F;hqUp5g*Fxt(1c-<>$ z{JckVug*OsH!tUwoZ{@Kvro;=$+|r&Df8QzwVBx&S7uaV$N$ds8OZQoo_Ywm{clY< zDP>l&;rpBKf~0=~%;Y>sgwUkT326woyJ;h$5lz9-;whpk`mkGk&|KsEcivS|%xDfV zUl?^$d2AT986=@=jg{2Z*Zy&G8mhQxvdkKFcMG(^e%e!FzgM6rvW2i?!aybwS${E~ zdhJsW7%%a*QW^u2 zzzF>pF*FqvSA@`Gncjd@5%H~JFd7~U#rXXp7{QlyLT>BWF--yw?u%o&GgoT8V`9Yi zHKExx-*eAxceD>j_s~8v^J;4!@t!5`s)a(R)rf(lohauzxl7BfsQ;7z>O%rBT_HrC z6tu4WHCII|77V7Xp-J+di`=sACpbK6Kp(-(5x-GYZu7qx;6Z2NILHkTl2NJ9u3xBXs)K${}?Cfg_$a=}sX%K@0AFO zw~$=Q)-=)ST2LS`!=Fac*=q+Zadiu4|3Ks!x1XgA@(XxARH3~4Ey=2Er>5{^no<$= zG>_SBu6we-nZn;l)J3A!9k%VgD&~}`4~R+Unw!0~LNQmlXVD+=Zaw}`Rm_mfXG4Z% z8=>DZ^^H&q6Mb?j*t2HR7EJd;7>u@3Vh}iS%*h3wBjN8F^C*mvPW9jOiY<|j~@ zu3_s47^SlLrhB~nK_MjMh64B4x}jBv7m_~|H4bR&F660HE6Wwvx@u-OZ3_|l(0Oiy z>UUaVNct0{@b;+fRtbI?F$k;|tN+3sXtd7d4mDZ?#rJ~Hb0%#r>u*zz_!tDRc?D!r zK?F5}`!G=oM#n-cglV8CuBbQ}XCo74qgHhR_oxvRlroM%|Dwkmi8JdgpDmpM4FKX( z)tC~k{w>j(A}RgXoxsH6ZA5b>=UL+TTP@-7URb#!<`ppGw_+kI^4EqU7yx5&wX4Wq z2?1d`q`CW>LlGo<8jlVS2aFAZIgM49@XTfGx{=!Qrg2IQSE>t5TF`Da>ADsKJcma{ zU?Ur|-KrXwqOB2vOglMQ42E5sxN&ax*TI(1XpH`=AQ`I#E8TsS7-dH1QZZ;-MJ@@q z5_OxG`9<_y`Fh;?*0{En`P%jEqY(uqK{z1CHYrG(2D!J zs>~}t;gsoHTou9IKP1{259zUZq-&8sKC>if z#u(N;SnJUsH@6K?{VB5$7#&vDJPUCUV%Xu1#y?g{hi7AVx@4L7eUz?$SYtz3+CttrBl)!JiRcQ*rnqZxAq z{Z|4kx}JrGw*F31!8U4j9|%=OPVoaIJZ#K&6$~_c^$GE5TL!l8(Xp)`DK}KJTLW`> zw$>S7_(nE~U3znNN|Qk?um@|Tl0_@489 z&bJDH{)c}Y1ynX^+xPO1tziV0m`iKSkundLnU2d@tROrd2T95A!|bsIo3&`Sw!d;> z2+NZW%s!Y2#3+-%YAA#oIRJ?#5WcZyrjSi7dzg)l=7Y>-ZdK&jtw;=j5hgE+ssywd z-xJKbRu0$gl8JXNV3FruFFu3AIz#(n2v3gRs6cNPVUA~L#Rk*gXxqkGkI^{6x?LyO zc(!d#_w-iUq@YJ?kq!aD?$|mfANVW6@ISMghIZw@#ud{lU*~B^Tk;e$tF}bwCT==B z#arRWWAdV^tg-q!K~A|TN$U$SS+&p)3H}-G#mC<}_w|H?e6a2UTDh1wwCV?0*l030 zlGY|%j_%6+t#dSnP=^V5QC6<}X`T`d882frZW05wP7KujQ!pQOo?}bt^ViM@g81UT zErcy&FIaPIe0ajzS~2!<-ceKukIVHT+ZH8c^&thuno73lqgV;Z@5JYWuz5n&U}XZH zG1P-ZU|T5E4{J;q`4ep+1`y=CCtx~=PfP^53kcmE zs%^K$lb!8BXLFa}iF%{Ua)vTjYm+-|`d(+rXtWG3p>8w}52lc8V145;w)RIg&Yr{wL=uiaP;Hk~+gCS8GrvySMNH>SD7YjynkHC`7 zVG6py0I9h}2#V%cdEzz9Yy>hp!DIk+pSqtEHEF2%b7!zhR-Oz5{wmTg$R)Z21*$d# z{K1}>zj6=;1=1Ul-3rDN7(hK~Pvf zNcmF-1KOHziUGX7N{qNVAuhCri+L&N9y5RH9HPu$A$d_SDC_`oC~hfcFxr|Ecz|n_ zLVmhemQQpJfZ)3L4BXA(;xN~k`yw}fk%_4VC%LlhTAnp|hGp$~yd#F`HYPq*l>!wa zdOz$>=s;xXzyKJ4tZ#~m?^tE=w^1k_WST^b7iU>*iVem3L*tZVm2QWz-$ch;LHw~5 zM$FhqEMT0-!tjjuw9utufzv;OMa1bC2pe}>ef`G{2xDP}rX zt@J3tW^Jp)vY_Q99*J%X)E@`|CDS66%6_jz5R@dZ;(qJb>aG(V*mA>pV3fn%qy^b_ zCp<<#LlYhM-ht$y6PP{3cP0O7!PR1%m^r*kuVRX6)u(a;+++(kwv5Wv zDg-^WIda}!+QsvB1l3+?lT5#-td}@JSEQrui1r|tgU2H!x&=~KTq5RiqdAAEV>Adg z+^r}-(t*$poj+6{jZz7!h*`bX=7(I5H+LO0XxeqA|^w^+zUz z5&Dm)Y2Sy;v2Hc_w;f15O#f8?wG2@|?F4bXTLc2E)KVDUPPan;8=OuUCQ)l%m4IhZ z#bDrG6%!oN^%P^!b_fEv0sp!~kL)9}k9k!AHWr`Fn$X=ZOQmb0;0dkjAR}}u84q{p zr-p@+VckK==oHne{EQqBf}mR4Lt=884go)F(xzEG)S-uAHxr)_z_#6=rW@9Dw~$aV z-4SSp_(^;gZwW;P24nsuEg|@zvAsNmbUIRgKtUB`*Vaph-+75p&`uGqa5pFZs(k{h zPySHROVbt;p=z~qIrM`<%4t<%Cl@jN{G`Q(Op+Ra#@pF!9C>1_TVG_JQzPzJ8+rqZ+2~^r#^f{iY z8eua(AcDZuuCx{!@Cd}}tPpmO;&q}@!Tl@=+ymej?FazES|em$Rp>Uq&jYDeoBtyL zxRFIcwy~vyY3SyWpSL5cVT3ER&? zHB#gb^5b|vRU)mrS@e0$_nA;e!-YaWtbdK$HQ9q9*lqW4-U|e^2$hXsUJs7JF)&7E zXQ}~&Jxz&ZmaT{(C-TRB(QXs+FR6*f2B2KkA>ghz1S@yXFjNEtUk`%iD8PzwwPSIK z;DbSoaC6)$=SQRJPdqq`qq#{djS|6;hEMdNdu4b}`zW%HA>D)?zfqFUv=N!6nD!vU z)H<7)oV5NwKIzV+f{B7@`48k5=Y2bGD6cRtBloeKyK?HYpU?hm_L8h?v({wZm^nMc z$XJkmdfGc_1F3&btxS15B?~M69Q^qIufP2b==<&GSYhXBseFPv#fMe5cfzAcS#_dg z(sOIkNG2IA^IJJ$k=q_KD{|^ILn$aUb8#QHBnp6bBYk zJV}gkK>~ddX<6n!lCK2$?PVj%Fj1H@74B`CUYS2ZPsgM9+Bu+^T3)*hEtWZjjL-@m z&y(q(X2qnnT1iW(fZ-5>Wf}YakRTj^>XZuw-ZmVz~+r>%T+p1}kTFn~>01e5SO5)aIE zr0u2F81~O`UD3l7SYc*`B=+m#*nX_zDeEu=gOtJ3*~`h{0!9VZ8kyu5HLy6;cCHZ` zO79v><2BzK0ugI0y(BFu4g@qw0DQzk8uQjHELpX}d{nZgm~L%N zHGv{w@3N$;C#Rr4Vz%(;_eHc3ej$%;pgk%`d;yh_-L9}tN==usi?#B9Z{Nien6~8!9#ZjO2)PqPo<~DfmD{b}jUUGVBhGj% z{w)rlW26{$2#6@&UH5YYJ0D?0+(x!Rii6{t`1Nr=SZVd@#qDKrCuc_t2HL2<2V)5C z;GobDG#S!sY`KZ0*K?#AEZ=O6ymx5B4(yy@EV<4w9|)0XJx4z3SA+yC5h|zA^bWV* zX!&;;FhRjQ zG7->Z23i}nC4zn{&a^TSClXuARG~1Du{;$TEeRFAlkZ_}m+zT!mrL=5v|uZ}s9V#O z=|w3pqXPS&O?mgG-9nEz8ARP8{h-)@Z7&jhVZDGIXK**n<7w|SZDATOO^vo$q90m+ zAl4%(z}Br>*xs;%q#P|2#RL^Kq!XthA8Rl4UGVpK=wrW#C?~>+2%r;aMRn*rqg8x2 zT7?-_M;$iW`0RB%XcbEPb40023^F?1X#G8FyGCm+ucayQf29q>YjzCCr%oAVJsxqp zkw{A}N#-x0_2vPi^>1Re(DDy%PA`B58%ebhGr_;@kYsQJ_TN{G#`dX81gdOp;Z@9~ zMoW=ciM04xevAS~oh^aitM)|nl-3Tbc#5V#l2jdv;gL%PE<^4FF{&@)nbv3(qRMFb z1<&^TY3AL#f5_sES32u4pb!8Bks{s8rXb*v8IN8sBMHeVLmTyow>{knC2mM(IIPo{ zkTKRw)4JWbVX7H~Xv`nSY*W*aXNg#r1YvEcXB0{HguS!_58z1Y9dy*vM29GI(W_e1 z>4GftNRZ)7fe)x-j=#MGJ+ZjZ%B25tQ*_)vHWKO$W20oB<4fSW9h6Uh9)2-%mi3E& zbwx*q`}jk?5yTtzlV|>EPIcxLXS)p1*g0%0U&po3O4mOH@pXo#eO53hAlT1#IV`4C z@fk2yu+W`mm=ose_gO4xnvndHY3S-@_Q>i(B6VYBn}5j;+GSZtRI{ZZv)i7C!s2!L zt|fK3JI$F3)@>pn0`{kqmJGYZ;!8-KoThCS>qXv^)H*qpI8GQxUfLeRF-OQh%c>r- z9YR%LnAnkq1#oC!H0pQ*yaw@vUiW-eRWGgb1!-5BBgnEs3eB~-JP0ZJe`by4BY1Ip z2o`YuP=cKI91o(YTBYb9t>InnF!xsT7feQO$5|z#y7QY7`U(L|E4x8(g?XUdJZ6qI z?$70dkU}Osk1;h2KOW6h)v5sBq&ImoglYcfu*U?EGNd;dhI6D8z+(^#PbB@lwKI?B;W0?bKPo#Z5_2uMulPi1& zeADpK$Nb|AoQ;zMajBFxQ?6~qu??thhlp23))mwlM=qJk8r{$1F<)4!o9BCY{5<{| z6VGI3I6z_XqilS8v63Q|TLT@w3tPKI*BEtj25P$nERQ*_`AKG~$$T)=_A{;O&yb2w z{PZ^JBFo!vt_|bGRveotvS{VTF#@Q(`MOya(EQg6-gXBDoTSrWY@3{epQ zTgaRYl&b(_DST~(6c&r6BkUX;O=n7Hm`8ME80Vy`z2WE>Sf>RZD#&ph_Js^~0~8;D zvqmZG4tXhfelFB1zR1-vHi&U!tbdzXd2%(Xw_x%tt9sMwM540l%GK-SZ4hBII9rT# z6kg!T6B}z{!~IeRHv4GxDy*ci7hc~3OC6>TypHabN${X;4x>3@zdHdEjD>KrF@Mi+ zv={!i6^vjdHfgUGwtMXguD@1uu~2un2=(@yF;si`XKaRssd3{`)z-FZKJ_$)gA44t z4Y9xzXO@5;#aTdXH=TZ zb_6Dcc#@eizf3HK`H}MM*Sa<70PCZ!fkvP7g;PYO^AK}Y^{Jp z8K*9Cv?N_cu%-96lIQB8bHnvl7sP?~s=HHLdkGLjPO9BYSTA#E0Y1>5FX+o3x{?PVZ=|j(;&n z3Nx$8d{BY#jz4rd<~3US=p!Se(bKW%WjusFC?VlOhcvBRX_^J-u8AJ415-Cy>4nTF zFquWri~@6QVM{wIUL6`7jxT7boB&N&i)2e>MA><{Xz9lP;)$B)m$WHy09BQ%i~T(l z7%C_Unis zm@NoW4owsW{N`B;UD5`LZ8iu7C+gXAT9(md!3*ZnTZFJRxzXh8+9p;z_LD8H@SFuS zN3hzMR$wKgs;sRoCZkYxdeoMm0HQKXW?UdaIptDit+DV!R~)+lZk>O5+! z_YR7$sLbdfc6%kCAM#ktTkVkatY&?zD`K)SbGfDBn zIv`NMGRbY4%~$Y%n@~(=>Jk5~u&J2F%G{Mcb14h#F;?^ph1p>9?8+uxfRR7>o0)JLmIf55Pydb$ zn$w$O`zd<)yS&KJYCa`Z8QJSw-ommMTUsgm#@@*Si#*wJ!cs%SBv>R#^KWz=dCWqL`$+& zB*d>P`75hIiAPmSbmpj#wq29m$rZ4Qe_rG-DZv*pVrU5-xAvB-6eGcL&a`RB2iV-tZ2T)WlSRp zjnpGDFeADRnJvPmC(Cvgx2;N$6ed}>i}SfF9}}}itJu^VKc9O`6)Q8YfP%D4aTp;Q zEN?L2M?&!1&=H01r}%F2kX?y`p(Txh8#8&h*SZfYJOh%Z(@KeymSNA2j58jPKIH`R z6(brjo;rOj@g2hHek)*Pv&EtRZZU4NwH-2`<)j&0a2hQ zUY+tcy!grA|9}GL(&o2i7fe_^TZEWs{}RePBNU86x%6ol8Iq0^GEIy=toL9?4;G;~ zynBeQqha{6_+|*oh)z)q@EAiW;pG<{d_p1*PovQO=uFWVl(|YoJnY4q9GW`qMeM`x zWqbn`m?#Ouvsc%r58`)qFil0UeH(XtNIG7vi|)l|y+jA^|(`N{lk7X@dY_X=nm#Y2HFHm zv1m1Rz`~X;qE1}D6-;SBzF?`+oPjHxFc6QD8zZC2mpVt)Q7kN%{XkX z%-@WhgM(P#;*QiL)Dag`m8$^~usYaVKq6JaRkS4?q{E}2wRIVd*I`vNH zxDMm?R%pFw7FmaAuM0cptFF0qq27fIQ)M!T{MMv`V9CoiIS23?>hYJ=|h- zP#B*#rIn6nOu4GFc_Soi%a;NQ3tqsq;8`^fP`Kz98c<0yPt`wnWu=aW#vAbHgB+K#aft^Z}W|Saja;|-QwuQY1+wh&(kR-%-F7@ zztR>sl4CL~xK5C{JigNX$QO|Kj8tq4)gqzx#Bn4Pljj#zxtPE_)hF}XV5^GxR%S?2mq?zku6t8~@ ziuoC5f#y|XR;}jQxiG@>HLMS7vD8|H^swqobgj*sUPmp8N{)ax0JI9hrhR#JyG^T?eVVZzaB zh3SU&Lv>p55NUJF@F88M23$fMUC4|Q&xk|;Wt2Y=klldJQ7WAF}#on8M$9YwE z<73HMEX!6_vfJZqwqt8zS(a?ac6_y2l4VKOVk@z;jpVU3c%-oYC}bI(2Z+_P}@q?pN$q|PNyLGr7sOm?J8`4p8Mz|CLdDGM3niCvtNku9 zFPW;SI^!0{TaIRzJE?Jw?c13BS6H_Q5>Psl(~Zb9v&Ms1flDdg;VF%fdBa47y1w99 z_)(VYs^gP9vEC(Yd06V5Dfe~<14TuX#;Y4OF{Fuda#Kzun9h;)nMbGeTnz9(-UHi&V0=8|q$(l?b8Kd)~WICO- z0VDzG*(kiaOkjJL5yPWs$Yr9&v5Uo)>1AbbZkGF$E!rllT`b(~UhsDu;*1{!QwTv( z_>1()aNj|^1QpK2A6+LEHe;!c4bKv!)Pi#@GOpkZ4!;2|c7zQd{xB3(k55PwgBukc zorJh#3AbPEcFmZ#<8D2GS2NBLu}EOe!;$S&r%J-cSGFP7EHUS}T{ZEm^tfleKceEnHi~QG6yn&-ch!xtR5|p$l&D#$AA2 zhM@ZElV$N8D9RAWh|diqGqeb~p9m78@omo!P})cRQZ+s$(oKRL{3Wybqqn z3bD77W$z(A0IbR)JM%n!W$iAfn)-VCHoC9&hAMRJ)aSbgfvN=g0*{6k&U?p8K3WG$$HE|a&VC9ULo6<%hSf)6&kXy9i}FS zG=#})$#oEVe4lKBYoBBl%-bnvS#PHt^pBCW%Q!()uLTjWGbcOq+Z$yyq7}(>BXEp< z9aC$+BcSWIv(d@h$5|`y@rDK%l`N%ZY4_iP)(LPCALzDkk^+is*_ZrC*w&b@!6ck0 zee$di0j=)+nA)NBP@Mt5WU2HL4LpO{`JhG*msSxY%ep)W?T8CSW9)AQ6`P z3j&seyG)vBwNfhSUpPLC5PZ=rS1YhxlRuDz9y5~1*nlFO|dA-p^$km|{-qC&qT z+0*-&dM1scS|&=qx=1w6u$?Vtdol`G4v6prB#OC=SFUOo#mqaMbXs`EL^I4IfcPqb z`rrKTG$rooKJL@nnq}+L$`s~!XJ12eUA@nXu3;RRdGJ8%rQ{CES~YzbBmexsvvEpC zK);x64T||_9Cvu6yCh^M!)+bu)=>eyN1HWbY&&i2+kX#wBx7n4B&o` z6?cE@V17rslX6xrJr)GddORbx{%5}w@Ah;&6xBt%+;^mJ!p%4N#5y=RKOl%h_u2k9 z3rjU$CSCD~=k51US)Wy|HbO~bD7k6qt4nWs1+Ujy)qYhE2}IQ{ONPZ@YnG~}=>^>2 zGhu26=@y5v?;$N)I_l?mQIorLC)HN5>C9ONhNcN`FkEb+G+<+z7pQ7{iCNv|b=^SH zamk}(=4|!t5XuKugB!?;6WPx4;zUX=rLDrk$NhwA(!#Rod!pTJ9gxjos~l5^=B|HM z?xk?6|Hs@4!L*N##bMO4{ElCIYKZUWoYFc6QyKE76FZo=DY9P-P7(n|4XtHne20|q78^hI{EKO3Y?_C zNeY~#z)1?6q`*lEoTR`>3Y?_CNecWwK!J+Ir$)|>^h7FNv)~O2wk%j!er4GY%bH4l zQ&Know&K4jerM5-i~8q%W!_Na`N+E?Jyjp6>RbFGd;qR2IP|dD<|-S}Bexu(uekKM zMeM}g-E1iF`d(z~uDSaNdkhZP4!S9sS27*`4ojwvD%ml?mLPB7OLAY(`!?=54U@|N zdko6W`EDC4)sPydl8kf<#}%ZbWM9xpi1jn_L+57{t;I=-aW5gJ9o6^&7<6ENzf4Rl zYPtMQp=(>Zo!M!Z?g~d$>!U{DKwa*4W8VlqkEyM{WlOhe)b`UdeR{o6tiha9Vx!+@ ztzY{GZI2&>WtxW50qam)zFH%Vae(J%&h`SQ2)^$N{Tx&4u9GR-_63X=$$PJp{0VBP zfe+K153bLD5z~k4=IGa^F=tFTlevSY?L5e+l_xE_d()7H#v(l!Bc;u5zERV^{YkNC z?eSVz1#(Qc!GnPm)QtV4&oX#5McS|R3VeC!dgt+xp3%rJ)Ib2-B z#jFqB5hz_-Fz=@=X}g3FMRJb4eT=EnC2d!MbC$29r6!!(Bgw4b0z>l>_!8qR3|o8^ zxJ!2WZytP?4lMV&8u<-z{tFB56mlF#Esayf^;KQ-053{) z?GrL7wV0Hx*|fV>=`Mg?-|ToZS^gNvTcqW-CEEg|JF~uP&aUwF0B#5BH~MY|a)N68 zrpp-I4d4g@qQkTw?#VE`l?6e6R?1M=$BY@yonrHxn0kEP?w>H5c^lc_-Zo9c*mC>n z*)@j}4h>B!hCNvTEiW_c;dTGq0hRMwX7Y~$MHEO)+Tx96N}b6()~_ zOBrFj`ryq$$?DOii>KwR8j_8*g=$&QQ|+`dTf)^qdW#v7t3rU!mPj>}KJ~Tiu-v6C z`i$H+Cf4(gm8IlSxBAk>?9gH*m?uxN7f^W)ikN4@qV@(R9o`G((#T~vkl=3I^l{d8-P+DA-}Ohs^LsobxrSM5l98YYU|t<)Zt%aeJGAFIUcyD)IY_% zv-Ijc3(^U^qx4p)_T0_47ugPQ(1EPW5m>U_a*%N)fTIJldQo-)9qY+Td|R`629J!ryT#{=A4kou5RVO1CnfdxP4_^z6+Z13`y;iMewnR^35zY3_D*~mCu1Ydh7^*yI~F_RS#a&~_X*B{i?NA8-Bv9EvK0>`G? zKtD=}t9=@)qg@Tn8*0Np<^y&G9K&>eV(Xk^7!ux%8Omo$8#waKpbP{!r*OPD6W4@{ zYaXM^H~2WoLQD$l9gZ_YQomiu-F27(EVYVS$oEGyV$u`f-iF+z38a4A6up{bqy5)u zc1?sF<>0DvG7OX^@Bi;%pt;^$h-Jerk(?L_Il#q~Dbu;@UWvakH(t%x@~#H?S4}c- zPXFyC1=SahaIJRY5kJj*H@7$h$U_`v`bp<;p6qyc2h#) zn)py6^wpK9YP*|9uFm8A<{IO2Q&Dw4{Qtd3m0JA0#pf=1^P=^Y|5$mv@{)yrvv2}g z06tZ*x1zZG{pF2i-!HqpEL!@x`D-Iy)gyCaj)IKFW_xm8DRAIHBNA@+f~x?;A!> z%_vj>*J*snjO|08+mfl&D9-^xHV4iw!%p@f#>+k+4k@$ zjTEYA*NV6b42lwTr4s114M7_8FH&rC)Os7ISE6602*Wm%#~m3$YCe2KNeucIMU2o7 z>evAWRNTb={ahQDv|W_0qXBfFL<$PC(FfE_pg&V_=)fb`TstVmI6>?fOM^Z;kS>qU zDx~+14W(0fdqr19H z7(3JfL|Wnj$}Ax<7X3xS0$@eKD|Bq49C<08qyc|g0ThY@_<_Wru++c^%_LqYw{dt3 z{Z6bqEm|(`DHgdr@HDHgcPz$=TmCAaXV!$QIPJQgf5GX8q4n07h#yWMV^^G(PI4G5 zK`}XYks)s)oTZuV;qN?1HqunIDG(g#!mMyxSDp|m;% z2oA*0h`>RQI}?-0Ws#sPlvDs3#h{5d)5KSJVQ2aXK7bQJZ2l&1qP8Cjkdro#EOsd< z{KTp$={aw}A~BdDKExBOp8!K9Q|J<65PaS@3AlQ;klZmbNrHmp9Rik_ zN7FzM-^h&v)8CmfnmDgM4GfN&cFm$j;Aqe_0+-e__6>G9HT&2gd z`+DB&!xT!J{w4WJq3-1=%<13cv#DwmeaG8<52>-N$Wulr9G=8GG+AYEhB`puS*Q=Kj5&FEBfsq#$9oJ|O+tz^VLw+s83wDwe3@dILJn8<4kq4KqfV ztzRkqn?ywUyEjikl`Cb@G`(5(x=+MP|4l4z!tn`7-8%<@73iCvq32tq=jM4LO0G8e zzlZ5X@d?X(Nxnv;X9_gS-!DDE@`&+lsg}p3*Q-`)AtH)>__#EzdzCo00v*dkVEjE6 zrK(x}db>+m_<6f(cqxV{yD$mXuDu_Aldu((b4*D&tkzK5i5 z9blNhZ~YLC>LYR#+gikUdb|FG1)tX^p;UZ}x6<#ZJ}AALK*s#to2MZ`CxV9TTR45- z7y=1G>cdg!c^eq4YI=?t-s^o{7J?QF*=>-wmrtMR_P)5F;R~+JkBP5A2pMD@H>U|m z#7Pl}sERf;qR$v&G6#C3ic`4bVLF4*#~n~+M2&!&Mk>lca%|s7d=zYOGmACVqM5dL zjM>8L`B`4(y}^t^Qlb?af;fW2P!nAvvL>OH?&67ugH`Tt&-RpJlQ1LN3+*=gr z-#$ko6zNg5%o7OLpD*)q&0Vxg+92yrV|i!)p)}E#pw@x0UStHOn8EVHlV{L&L^NG? zw|7mJsYChy&xovvEG}L2fkmAQudDb~#r+i>3x2lXHRV4neQ&8M`jet7=6yf%lgJyZ z?yIVgtO*PCR}1U`6SSEhynT#KV~fmI>-%_g-hfzSyj^eP@r6arUDCe^56$1bd5YO; zVG*mE{)%J_bQBsSuH<{4=2^>5(%EI&mxu38-M@sW7U*6chIqMQpFUSM;@FNOIxD%* z84_SqG6ExZ2PZ;k6=2{NT5+Tqpk^bVy6FJHF`!tFJL02hsLuG*jbG{P-3_GzdkJ)J z7!HKl{l_<9d|3e#>2c6h3#)B&M}F;!_KWj>g13kvNz!o~=eq)&w2z8&i}C9e)u%&c|hxayU51rzG4XjM2+Z^)n|> zI<`On(M)U2563%{eS+ZvziA`R5FG%Ua0Nrw0~7+lchU!8)xi-^=C(P0I4S0V<^--( zQiC|TCWa`l7d}9ZWXnM_pYONfn9pX0Z5RPAjKLy4o=OgK(^kZc;Q?3-T*-%5SZWBT zR#I}IX~I;4lBF1v-(~~T37crh?87z&2cUuY`A|S@nlm zh%HFngWP2|odc+En15JR$8dQX#oDtoGl^IztX6OYotNW8?A|n;@x|%`XN`o`|JlTY zJvebFLpMHj{O(H}W*Y;nJE=jS*Eh;0uf9pL|B%L?fhL8dlk{nnt&si6gN#o9ILIyZ z!kQRL;|Pzxgy?SE0>bu4lRQ9Y5dP~+ENLu2aU?|n$N|VIU_vIVBrKrR13u#~b_~7$ zH4caZwENAn|Me$X{Y+pls_An&!nCYaabgf#W&Y*rZ{c=@ZT}%k?H+x`zv?`e-?v{0 znNW9^uf#~!4@V!+3hcE4$+QVe2L#a{7U|oNJV11!lOYn(5fe68K5xX5fyIcM zSTMkLm4P@RsR5&)m_i}`VU9v4`e4YjL>69HJkg&M6e2OS(nD4ufF!EJ>YEaCNi$BC zW>;wjg7nmX%4~s!SHJJmsyO(MEtztTq`Wh<@F4*7DEYHq#}IO|SYZVP7i>pnbCMSw zSllCVm~?jdY^zvHs8mYJ5d+zgIBIaCfJed&e{mcg$H}vE2%(2Kgu*NZ#SLVmzPqtl z=}p<8eq8770o(JzTJyHyQt3o&mP&L#)nIHB#H0^A z(_0!1!RabYU$0oXPsfBK;QZ))ZnkO z)?%&$-|h{_T!yumn{>BGUs9k;JOLT_FjH$n&b?iAOk}TLvU`MyeWUa$z6CSMEq@Ex zCV$C%rpyu4%B_nS{9T7gZoS^8%N+B=F)}ItI0TYu6XLywR2&;FaacnNxmHL}iRcmL{fYZI|$ds zj;HpC?1Os5?*TciOfpO1aA_V*#*dIo1w^1#kF5NIB?I8Ja+D$qGpo1alEE;><;dq( zkPzaIyKE$vCX+r{j(r*vbSL^DbCA{Q=FB*2WF#E*D7GR0!4zE~`4lA_gh^zz;%WiX z2Z|EEL^`=&NTOe)yGn`5h)b>{-^W2M8q+4dfI0--btHUvnbMPu<12}&0@JLYVts8E zJIOXVT6%rj6x|~Sb1L%)w*So}67w%u4+bj1=JbQ}$EH66FcTjzN*zMy- zT<4NxsBq`q)0U-7{B$R9}s_jl0fyvx_?G=3Lq9YgUdu`BGHLF8e0mY~2b`6enFpFc0b4omE z?!0`qV@G!i0g}UGGJF?WIodhjt#uAHr$tcsGV;+RlKT@Y?LL#Z*2cRq9Agg}Lq##b zVcBTZmu^&0ryD49eBK!!O|cCe(|#y}l^f8S#NKZ*`|aSW&*<&E*f5FDZLl z+2YbWORGvAL|%X|&fi=7lj3ag8ATr`>YVqs$d`;a|IIK^#pBKZ{QjmiO4aOJ-hLRi zfkbo#{*F)KiUa013W?@GT{zuSf#Rko9x2?^-!P_57n6+A0TM5H#bWEvZilUP@AP>t zCH|k=7%-_@iJ~-An-fJa;YbT7U4o78UAkHD$0+Oowm_(_?j_gBL?jxlcGhYdUD4IJ z($y8EOxrdZ4A1)TEMM~H=!%^!?RaL=Kevc6X!B#A=V0!=6jy1|`#)sIvYsl3QcZDP zsMDcMIRs`Oi@Z;xlTn@cSPZ_~cJPgY>hgGLJo*^fKR0f2M#T47qyyy2|0_&Ye67%? z+RE8K%IgsuzSsRNHj0g)_YSzpn)`+K+I|EfKTFXp&GOjQb=W?S0e{}4oS@Rn%tnZMw#P2=IN9kV*u67t3^!X@6OZJ2CiL=byEnI8JRTXkUyF3jHIB7`WxFuL*G24EXPG9oghYcZ3{fhsUr#FsB zg+SxpW_ylMXcn3esvYO>(lRMh-g_8??D08s-#1fN>te_~;Fg)2Rf`N4QeF-cwq3;* zMz#Gu@y#d$g$z z8ur`o@icsI_jmK-ac@361UTWbVZ*F=XwZzu2Cjfi^l1If3X*YVjtzWocQij9@5qCP z2F`fY&4z~oEqGwwkUg64c&o7Xj;nZz;Yx}fd;q|{uu%Tk6?bEFeo44nI z=df9u=c&cUkHC5q4JT}_a0z)B6{J0ps$F^C+JF^aQ@7k-Q+pk%%XQ_xr5o~K4J;a_ zTyUG=d41pIVN%uW_6)?P-hTcp&oJB|Yw|p`DuIlGWQ$pn8^Dj4cP-LlUcYP&AD*7a zw1tO_5!Zj3r(*|pO`fNgN(4g&O9J!?r)~wQiUnlRvb1!#&z+X5qi}~K6%+Nq4|9qkGT9Yd-_N%pANKkrt4mm_zb(%Y-R@XG^jW}ed!&}RTh}LyR5$c~YaVb$ z^Icy6THrah;G4xkW82g0eeemhJsQo)aMW8YD62V{i3o0v`5!}UTp)nDH;UNMIlDd< z)-T?i3#b4EEu?}3+$OuPGWx|Q!odC{4=|z|3CP)$8E%(PnGq+NPdpk1_NF|*tYQvv z;b18(|M zjxzX$++LiTi+Tey3`yEC6lw@4|G|u5)!fI!^m~0CVDu^viBzZD=XOZkj)74_0Mk0P z*5e;HIyD^RC9Toxay#RLAOWj`n3)L}fne#u4RL6w+(xZGV>K)RSMru5bM@P>i`_#)sj_6x7noF}HV%*M%&`;c*{UkRp6h_hT9o66dF`u2b!oX$6y2V8 zFUV) z;t8ehVv$>^))w&(Vd_0;dbEV$o(g~qG>WP921t;4l?I4WFTQAi7-=&j@dAxNGNF`G zr?X;lw%S++wpj6^o+4{0`GNtm)=+LnD28&C0;N);^!?OaJKNm zOf<8AxHSW!=E!9E>Mg_r%g%U3cqmU82#(wM?dp&jK>c zP&23X%B>j?H3uNtaG&~$T}F$;fIe#h8D^-N3p3PMX5i*IOR1ugqCD4cboR{03?RD( zsf)ZnBFyPJ-T~B=HwVO;y10btMc&e6D>du$Gw?MXL#9n<7bmO+^8XrB=My(Uwyc!i zUhtNX!u9rhuA^=#8-kY1pSB%XoCDn&Ar^QVQx{6Nw%${$k-@z{#Y|gT9oC=HWlN2` zAhpU$Wc|#52($rxG>Ar#j+<5Y2kro6p5r=A>$3<*H;etRbVqfDVHrxOce4Pc5wQ=q zqEfY}32AcR*&Pwq2G_E060uU8d=m*sMl;8NocLp^rb~FT>Ng)CR>(M<{!)WqXZ9lQ zErb(ckpo%Yphx@)U>z0Pn0DM>Q{M|%T#{YS;iI}+Ge_J*zTXhGtOa$`KhveigKAqb z|6M~lh-u!88RwIId;`+3A9)J=JV$wmTV{F|^EUrfRDmn>vfTPS?+HpxF#~2#hX&Z1 zJ_XyQc!=sfkZ)==&Wv_mN&~l5} zu!@*(v#(&JE^tVFB81dhGmi{#M`9v9Ig<7*Mt&YM$yp8A!q`eLj4cf^=9$z5^~)GP zwMpZpGlFEx4PJ)V9|_}SHU;k5;bnMXj(FM4LfU)U6V$8!F|WCE&(DBCS`WB|{qZm! zX6>z|u0juU$iR(>4BR^AHOTP24WHmm@N9L3%u5*R$3h(k)rio;9H=bx87gla7V1V3 zUawFa1nNzCtY$HMG}Q50!=Ma4^e_i1H)f~=A7f>4f5_WFLxqGkx>J2{$VNbaB-DRU z-3UDl0}pE(7Wiga4@Sj3gN#ir17LqGQa&8&*sv3K7T4!g z4xB~-Ml8Lw#rQ*A@lg~~B`Je6t%s2bsWCp4@3)w@{!;N#ucsc74tw>-MYL4&pW3j+ z?1Q_L35vY*Ez_DcypA=>?ztI**@L8AOkMnKIeXO6Tz&2hDYZ9FE27tcGW2@bb!Evg z3#ec_RCIp`0Ipf7*7F$mtE=zk?WO;GfJIj`pK3KZEc`3= zdO!5czzDR#0fV$TL?&GXK@4f^T_&>l1=jDb&#uQ&TpK*UZw;O`v~#ivw}y^-FT>G> zduZWxD_!tfL=5pHs&bf&wh}Ff9c4vh)5=)Q=DS~?t$?t&K6{Bn>Yp7_j0%~HSm?hT zq~zR6B0{?GBjwNC3|wCSmMq<*U7tPO;qpC)3+)*~pfxlVC+>-)H#otCx&SUA6y9=A zI4}9Ltq2OG4cJJy@b}nO2}Rzo&fdaI>@C&@ponPsq%!Tr{d`f8+(>+v9D4R7;v{^0 z{YGon8$Gdxu18x6G&9=0ZqB3O_NZCF8}dr;iUX{fMm`jIBn`KK=thkEYTwAeQ=r$HddvoyZv=}1tsHD_&9E5_!2TI) z9$u5UvqkQYJVf_E4Zcia{}k+1^faWnM>mC^#JtuqR;RpXeK^|pWjP!s{+49N(lC^7 z2m6vR8#KF>5(MdSVWc zQ<74@KY=Cp#1!SOki6tdO;M3%k=xV_>zF&U=R!z#XIHt| zf5vI}mZh398Ol30EY~7=8dT%f#NUMZmG6jXH>FAxl*fV?2?ri{zK+3wFebgl)Kb#_ zQ5omb9kO8d+|LKbF)|R-g`&}W|K0~!%7R39XMj|HJj328vpj||uZj;h>QWX1XQ(~b z%lAD$;H8nB2Y`tQr=fh~>I4e1fZK)n%{N<2-e@CihcZw7Z4IyIe6 zC|e~c*fIZIzHWW>?2WQAcN79|#MDYni<;-USY8JITB@X1rtBrVIzA$Ws3Hc$P0Wtm#0Y`QafV0Nn|7|*6r#F>oV4xP9-9-3t zA#lqt5_zx3dYRILq|6#MwT{ugt}B}PHuT(Iu=MX`fv%d?i7V?;Q5n>#0hk;gcqTg^ z-FCuMYWVkSO(-WqeQM^NFwWO&#W${Nw&zSe!*rx33`B7y^#x{LRd*YoLcP9+87r^% zcE&0j#RBi-1+InBS3_XzRc-+^a-K)&7CMfsNWN-V$TLN&n|86 zEP1HpiusSsKdtz^#kEBqasoawFBbXBsyE?PV%{E?0;;s66Ia+Mu!7rb->jSYtEH`E z_7*WuSJm?_Cgy$M8P)JRk>$-3ykf~qt_7F2ntG+h+md5i8(qs@nS7O2%f6Z|?wMIS zv?Ib_K#m%N?6hh3c7*CA0Z9o;$Tw{_>pd8g)>MT+eIS2UG4MH3FLBT^q9m zEEc#Xw^$gIfW=udNOS`n;a}64vU(NF?IleoHPi{ibah$Vakk<<&{tZ7GPR%uIkw(>s{a88*IkG z2D^NQ&EMOzmOlo=IVRMT^Uz${z+>+bk#DU{X8&kmly@cLlmL96uAtKpS|1 ziJqcbU(GW0aj)~A_&7$lPwa1@W!Y~n$b4}nGd=_mz2&vO<_?hbIdA7u-uk>Q`JE-_ zQ1&9X8~w(12sIr=WkwSSXAwtBD(q#)fR*hdZ6H8~wnYDg1m1xKZ=Ah0TafL4oYP{W zy>9}3%S3q0P=h&d=tdx@HTPf7jG)>2gRXLP%5f1qVFY~~L&E|xUl)Z}2d8}Mu~E#) z7UDcTColC=z9cICWd^sdmRCXl6Q4%Wh$#d>Neh4M(>k!D@VQBn+$?KcwRp1nw!M;B zAzOw0tS?*a;Qfb%w~pPXc+G2&X0Oc$+Q^=D*huZFH+WbT0;y> zrChEW^sZ$P%SGrH7NOidb1pn&wk$zNW9LJtu}mn`{8uE!Z&ab}^cF0k&ZJ}M7c4qv z$r`j~AdYJ)v*ibGSavb%K5FBAqC#ji$h~7rgR@9HFEuKCD_Cz{d4AW+wnlZV6RtG7 z$XrZ*X2I3e z+kILiWgpFq31p&O83rvx*L+lDWXCT>e_3-|g#I%a9U*%A6yBd&U}g?AKKA##NVvv& z5>)##(GfZx7E!gDzqTn2KT8#BR%KVZx%hVrf#X(o+plsq8KUgE@e~-r3QH&_aPaKn ziKzpl)0frk=!Z|*V2w8GSZ6VGX#W83uxhQAT($E3W}s8;XN{j&_>4|_2p=A>F8WKS zjXG=^78y$oKwncw8k2#(T|+n2s1>d9CP2TOi!pLouN7o2}fug&bX0>UgdO)=PWE4dI&aerTJj%Dd71q`zD51d zA=|>Hk2se5H(MCBM$`hnkkT}9^50`6 z0wr>(J{0L7T)d8JnjxthYKKHy5Or;z8+djcrn_pWL_i{;Gq3t`v{mm;j~`5rqASX8 z79Sd!NQ}jhmv0Q^fC->s0E>)jZ4r&VgVoDx)G8JR5wj|%&jc?d{khox)se_)G=^FR z<-sYb*fu`psA6FoZORUGu7vPW)~^;>GM^Y-EP<*U#*m5{x#g%J7iHr{LglubWRvc= zPBx=UG+8ux$nwOeX<416^YfmS&4>%1rUNZv-WA_rXx^n-jlHt&b2!z!cyUG5t0Lz| zS|U~J7ysSjHH+@4{9)xQ7e2QzRq@@5rUn19;JWf(l;2nOd|7wtQ>ASspD$7KKRthI z@wJ z`xU=M^=o-GSe{5sqTtk+?u@$Eu5~p(Ws{4#lJ}zu)%rW3xi-5|v@2O)^f{t*S%LnU z%CuhD99N)`*(#(lA;GO6jL0D9nAJ|TSIpEb@uSqzvd5n8>IsRpJ8J_nd3+RkQ@dl%|Sa7>$n!#P15 zpt{H`FgE^YGtUCM+=`09Z{m`7&$D!p^Og}Ae(^-)b`=*!aC1>6SCpk^`{C%@Qi#wR z?$rNmW*p?2l{rB?fW5|#2s2*Dr|w#Hy@c;ZZfDO6=0>gJm7e8?qkT&V2kzAWY!)0G zH_BD5*Hq3YY)>blIjXL|jgiV;2$t;0wz@s#6@D=6(;`zLPNpj$23Go8uZKRAx!ILSCNgqYVz zs|%*cnl(&CwYQ7+>2V5@Xt~;Y(v+SNMAY&%_vn9SHscy{v(d*hZWR0L7x$+qfW((c zru1~=gGPRD|0R_X;jDPf@;IhWmF1vTRI#qRMzw#M7b%~;li7vkR>e5Y^%cC^L(-t= zNMbZOaS-W*6J{rNtqo(?;}=&DNssgLG{coHiL#hT(*Xihi}T z{y`qI9V^kQ(C;yI3JcytYURgy;az65sqA^+rz6?Z9nYU);|f|}FNT-K>Zt9Okn2N@ z2fAMl>Q%ZeT>KqsW?*5Z%64IJ=LRvgP|F1EYzyrEz7WOzeA;@`=Us?{0$N-IOqyW=BsAA7JdVC#9W^H_iKhQ7r6 zlQ;Bn7A)DdV9}eiOYL#IbYTcOY6Za+wgYtq(h&`NO zq*Yy`#`Oat1cz>B9fRYbuFpCL=+cT1&Pn$CB8!maiMdT(;TL0StsE59I&<&G=;~J|U^AT*OXEAs@la7ithl<9K3viJk>41Fd(GDD!&40kS^iVOd(nn-5FVzR4+I9sZ86e%^k2RjUXEwMx`DwPqDhJNWj9=>Gqu|5j98 z6FD!^7g_v;MK3P8xbpoAf3qi(PzgJV z!8Av!El4%MezIm)5oI<1ueeB^=7p=;MEF1%zTum!ztGhnCy>*s@MhCPSPeF!);u=@ zH`|_WPpd*uLFS%AG@@R$J;6h`C31TxwMOYC(_2{KogG?O&sA3pi0xwglf3$m-Vz3O zg#{+cB5T*&jUJ16o-;I`Q?)i4*UPr4+C`fhKN<$M(R7xhqs|5_N99y&&*$~0w!I!Z zcI$^y<6&SM9I&9CIV%}+bWT-w7n4u5Y-XVQQxwm>soSYz>kY7t_B_wMn4b+p$YbUQ zevX}QndlrXf66m;gSuKyB2=hzqsx|9T5r0d3~_t};l9kT7Jy{|ejHPqKEb<@YJHx$ ze2=;+!aRPJ>0jF^>r79S#ZLOCuFS8de|bs+U_8*j7K?3yfBznXxRKuLOc#_nh&$#! z%&(?nc}gAgns<&GlieV)wPQG zG`o}sa~?J$&8chr=;a%XVFZ~Pf9ssV6ds1V5Rr4Iw^aDiJB8P4o7&U#3|8!esq6~6 zD_Vqz>2hPXxZIwf5d4L_Dnx?*_}DRMKs0oFC*?l^8hY?SNM4&uODZF8I}Y>_^OoPn z`}@U8yMU0nJU)c8tk(Qu229>FX`r*Yx5QzZmKLriRI{ja*0tGXvschS z7iPDV+kvhQ4wN~;!pckbAZ9btJv6+T`wfmkokj}PkMD4}b38>AEa%`4ju9$dWpTGG zHv8;YoQPERJ$Jpx!<&uXflgxHd1B>PTSU+;ISM`=N;o24HuJ~>y`4bQ*jAEAOeEPg zmSh(Iat74^%?es+Nz{qUpCgcqd&qNER{Wmi=wN&hW_u^>c=XaVHkYO`uU>1u(Kw5p zC92_kE!{?zQks0MBL(Tz@cO*{-FnGs@jJ(0f&?~Eb?*2OyDV#nnIt~9o9CM?$u}Ca9+dsl8ho`TZ zf$M{e@BiR`Dykac|34gAeEXswFM4(5uPg7WT(!{R_@2e_eS|+1+K; zrGHyGQM$C`9VM@r|Bm^~i{D!Gsd;aSJObmv@SFy>1B-XdE^5jd8B4Emo+@VHiyNf- z-RN3wC2NPrSoS(h_t5mIZo2ol*9M>}`rJQiay&^~Q|%cOc*8(7%s@$^oTr;}lX3nv z$Yz06jOb+4b5G)LR}v)?$0x)?W;IFyj-VX-k>qf7TRH_T7Hq6qKgznQ>gb>i;yGnq zKuUPOn7#z#iyvR+#&@+tny{^QU!A9|9;tgYm*M$cZtYP0PBV>EAhvoSgF3HV0UP5q z;~l3cvDGlm=?877M^8V52+)P==kXDYyP8nnj{=-%(+fij*M6NtAk+O~U+H*_ zkZFmqnhEL5UIjAkonGX~bd?)?U{W0m3AtRenP_x`I0>@L(8y1gxs4HnrjQgn#yDzZ z<2!tS#OR>5|45FHXX&ezCA{ZVWKY3zNgi?o8_4TUvm-GGfsYi`kehvEbTnImd0K zn2{L9y_M5dSd!ajT`eN^;r_s3yJmg4O@=(a2V%eRN@&Y^`#pdE&0`Fc6cmveyKHAU zFwIoW5hhHJvQ=~Ym{%nRywCnh80_i4&lUrAlgnaS+V2A4?CFagus1I6a*vGga7_>h z6dfLq@0&pM!#K9S73QUtQ6%ePh2uum(0`2f5p{taeAMz7pTx68gao{V%%;}oAX(Ml z^yeNKBwUliNWh@c$75HGAD6#TzN@)LUHTbj$v&WPd5uG%HwRA64{lth&(OHSSCKtd zIdjYtRN6wnJLRzEN#@$K)s{F2c&n~tT|q^Mh~=Qt?nfmzQL*7c ze=9RTc~cVmQJG-w^foX?XCMQyMnw`SlL5V{)y8g=w)tV0HK#Gk|42AB_LSGCA@nBL z?qnd5m0+*WIkdH5Y#4XL*x~dCq**=)$7)Inp(P7vPb<*Oj9VHLQ*!H=SHr9Fkard{ zU|Z#B*-Ai8(<;y>-E9TB#P)5@i%!Gg{!jP?pwTF2n6r7`U#g<42kfs5Wd|v3v3*yO?* zBsf4!F6vHWK5Q&!)5&z!20_T#v!E|GQDCQ$^bNiq%pOAp148$*=8-;sQLp*0Va>Y% zxX8{~#7j4#&e)_|J3q-nIJ+5$b!1@|Gl(f4Vnl92h(%m3a$4G1Q-X+n9Yn}$ z9QkMqA#D4m^;ih|Q;1n`N?R#x;nj4%8z`$}Bv_d40@P96inbE=`S z4tH?vW;&s`m-ImO5rqfL$21%@8d$EVHrf4c6viqded~uRs$LU0Gje65>Y~MOU-bRT zFD{&_xNgC<<;Tj7mA4K(%r$A*{dvzO!QLd&Xg z|8+^|G83mfpRvo|&??OS8x12d!*`yLxMtF6+RXC9MV74V8}=KtoZHFb@lY z-u^RMti796Z3!<giGIwG)>81;CTGp0(AJuoid( zUu_j3pf-G*m8}cdb!TJN)j}veV4yL5NCwx!2-aeLH8_~HDy?X)xEb_0qoH&r_9bB- zMsykNrABhO_O_wU*9{NP1QKx@GOB-Jec=MtaG}tTeBN6r^1$4sywc!g`eqD_sL21& zNs@!93`NWBpBPEQiV?!$SFA6nt+Hb;Q;kz>qF{A+2r+&Jg{0+cGA!_6ll^dcQd*kp z*7#!jY*Rxzd4)(P?^H)~g5?pEe-qy#n;Y57lt~ZJ267BdV}%((JYoUx?Iq2egD@K| z@(Sa^1F4Q~hZQf5$iJ@i_>uUO&m`V=IG!4$tPM^Z#Z76Rlm~`Ys8>U1cxh-(?E5?) zg5a<_%p)OJWxX(l-AL$Cka>{3WT>ZEN5ZdAOBqu&{C3CVxRmgtJEy_v>_vX`PiUZ8 z4(wXZzQ9W^&fdZUz233UemhXPD5J$@(VuOg@(K@>->GJubBI&$XtthZ_WpANjG7fT z0L6x`wVD$XNZX0@_Mc#NN$ra9N&9SNa-YX}{B*0Pw}pfqzvQ*X_}!>x8^63lp#@!U}b3-%|!XZBE5cw4vqP&xD z6c}7{Vr(=%ejvKS-J&(7$Hzv}snL~4F3cowk8r^ThZ_W^rddkuMsj^zBSxE&lT*>Y z$@nB(p>g3%>4OU{eOM8%YY6ZZQv80$4{kJF3~nZx_9s zq1{LeP3Si4HlY<@6l)`a3_%KY(UpKZGF$E4_Amn}3h)*LcN3Ys9#p%|WWA)ca+;j1 zuD>0(7v);c4O-F|F=q!n8)dAN;5W!Zu@7c>%$el{Odib7aGe4R%s>{uRP+x$@cT?# zKwcrzcM$2SeWY1oJ$;Fp;nbA?0}h#p3Sg*14>}OOxGzol-OY4GcXc%N#Z;5nN>u;7 zEKEzM&nIFYhkw7>isP1;APJuxK_jty%|=Xqfe_<2km3=^b8%T^(2K6vPS@O1R9OUa z4xb!J4Vs&xt;s>$eow~7!C>Qj(`Cmn3;S4M9imzust_@3w^)VmmZM(3By@VoT>EEh zX%%K+T{c_l4VF5zl;mhVSMtakL?0$pb#z;NJZ)l2ec><&g4fe-XIl%bT#{gYoFZy+ z_d3=CUU(@>w%{R3BdC|h^$uq;evlgAP?>E`NnpzC%R5j5LbHOC@_Ihts~v5uYIR-_8mEi6gU(Bmu*D#-As+%p|CaZNuM4~wJ5y~gl9@AD^^4oD z)N*n-z1HAl4`SS9{$FF~tA@vA;r6^uE?@gcm;+5J2qV*8(-IyxxyJaT#P&S|r zUjoNh8S+?hVXZ<`D6lK%v0<-ZGZfljcoiz9O#r?6%+xRIS?aI3$-3KgZ2Dtp%s|9R z;iraOq!qIZHH%fLI>Q`y^X#cze

F9!TG*?9DduOzBF>!ya;>M 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

U<6*pVN>>1{2I-0gFGrWdYgXwB z;-z|(3AA`web1L;!s|nihVhzFx`KE$MprC&fiBv0akz{qf!gm`r7M8fPO4wZ0!GzH zU0_cxlZ5g0m=Jsahmbu%HvHv=#QMk9pSSK!E&teZsQEL^JJ!B`?dmnz z)t_H|^QuQyZCqJg@!X28rpK4>|7#pzsei*5zON33lzz$k{0X*h#ZayigZXky!O)8@ zQ@Wh&{esdJkUhz@gFnEeSh^^t#Q`P09FyE#c(Kyu^xV%YT>+VEkgix{&e7%Ydau$I zz)R|p5MBh4;w4v!k9;{Mye_yfjMvX8T>-orq$?J@99<5t_b6Qfyxe{u%ncSV-!34! z91~vWT@c3W-AY#guLkLg1usXJ!|P|2t{`5d9w`391gd;VH4UB!F#X4c*T(b0c>Rph z6~wDCx?;f#be#`d?O?gv;q@-1D}a}(RYpkR;){$HQ5}j|<6hNr~l43#W1(k3&?%t*(1yG{# z#xN0WDok>baH6X*;q+Zgl^b_&RjL9&HAGb`P=P8FdvaJkq*Mj5vMw8eX2EjKBwdaP zt#5o+>2hd2sB{I-lel@w#8>3gFcs zU9sTh=yG_SQn~_ok$kAEh=3Byc(n{7Q7r?4zG&R6~s&R zDHCY%;;V!gUycbcRPqYNsLM)M5U>D44fw9H#Plz|O#J`3rY%#U z2*69$-P7`SExpaBn=e@VlWU$|Gr0N_t1npfrj>uUvTMa-$N-pIs{c;y!!e}aP#gmM zF$Z^%an8vmDmmslt0w*-CO`h3`;<1vqfaPp0Um{RO=+eI1&&On3YTPvNv`wvC~a<@ z`MA;+#7$^m+{oawxP@tpMYbJn4!0+jwjgf7Em?}2TxXs#nK9v(&4+ROb)_wcTjR9F zf}5kw;dWYS3*knt6+5a-rR6D~mnOML{6kE*9m|Gs`RN1u-L~L88VaTFCe+ zLB^M3LhQ&Rjf6~L=Ox?;i0(dF=Z zROt%hrRtRlw0QAV!iz7*gjeri7_W~iT|vAWqbnA?99<5tN0hDrUVQKa$rmLHS?fox zGG25!CcHX&!+3o}=?dW0AYHNG<>+#FeOT!V;-z|(2~_!_Og=GW`EpEn-P{qz>z9?T zAYP5p6$@UDE{E5Ll&%0?loQJOo*`1auwI?^+Ba8fLDWb#e$ck%i;9_ zr7M6J?}n%G$OI~0a+UDn%Q4}#$7Nb=eNe|9@4};ik=hu=%o0Z{PThjl&zB+;IN-6YKtR-AyeIH~+Bt=-Q{(UcBak z)z7cqzv?Y3Ke6H;R@~9_mraMal+WS))A2M1%P)8PtN(}gH^2uB^FcKS1_yI_I{sz0 z)g94iGhrLweBR&m3EtT=T7Jz6yTALh`u+gkQegobjcDK|li>=pwm^fniQMy!R_(K> z05@LDjC*a5K68eMpt^^nl-k

I=V=kH1?vMc|+ZdX(> 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⁣C3*^&P)PJKjF;IZ< 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%0AoUftq^DXSNPUGZ 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

pb1w3p$St0pb1s%(1a-d&;%B3 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

EUel1HdV)z>ADP!E`| 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

3VOvf}##S~1& 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 z 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

p3Erfefv|93Pv{db_;d9XJ& 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

v41vAup67M`Wa68~2F=Y@; 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 z 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

2ZX!6kkK-Sd*hUx^>fKp#5YdxdTNNR-# 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 z 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 transformation, this is EPSG:2393 (\"KKJ / Finland Uniform Coordinate System\"). The input coordinates are assumed to be passed in the \"normalized for visualisation\" / \"GIS friendly\" order, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." + }, + "output_crs": { + "$ref": "#/definitions/crs", + "description": "String identifying the CRS of target coordinates in the vertices. Typically \"EPSG:XXXX\". If the transformation is for vertical component, this should be the code for a compound CRS (can be EPSG:XXXX+YYYY where XXXX is the code of the horizontal CRS and YYYY the code of the vertical CRS). For example, for the KKJ->ETRS89 transformation, this is EPSG:3067 (\"ETRS89 / TM35FIN(E,N)\"). The output coordinates will be returned in the \"normalized for visualisation\" / \"GIS friendly\" order, that is easting, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." + }, + "transformed_components": { + "type": "array", + "description": "Specify which component of the coordinates are transformed. Either \"horizontal\", \"vertical\" or both", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string", + "enum": [ + "horizontal", + "vertical" + ] + } + }, + "vertices_columns": { + "type": "array", + "description": "Specify the name of the columns of the rows in the \"vertices\" array. There must be exactly as many elements in \"vertices_columns\" as in a row of \"vertices\". The following names have a special meaning: \"source_x\", \"source_y\", \"target_x\", \"target_y\", \"source_z\", \"target_z\" and \"offset_z\". \"source_x\" and \"source_y\" are compulsory. \"source_x\" is for the source longitude (in degree) or easting. \"source_y\" is for the source latitude (in degree) or northing. \"target_x\" and \"target_y\" are compulsory when \"horizontal\" is specified in \"transformed_components\". (\"source_z\" and \"target_z\") or \"offset_z\" are compulsory when \"vertical\" is specified in \"transformed_components\".", + "minItems": 3, + "items": { + "type": "string" + } + }, + "triangles_columns": { + "type": "array", + "description": "Specify the name of the columns of the rows in the \"triangles\" array. There must be exactly as many elements in \"triangles_columns\" as in a row of \"triangles\". The following names have a special meaning: \"idx_vertex1\", \"idx_vertex2\", \"idx_vertex3\". They are compulsory.", + "minItems": 3, + "items": { + "type": "string" + } + }, + "vertices": { + "type": "array", + "description": "an array whose items are themselves arrays with as many columns as described in \"vertices_columns\"", + "items": { + "type": "array" + } + }, + "triangles": { + "type": "array", + "description": "an array whose items are themselves arrays with as many columns as described in \"triangles_columns\". The value of the \"idx_vertexN\" columns must be indices (between 0 and len(\"vertices\"-1) of items of the \"vertices\" array", + "items": { + "type": "array" + } + } + }, + "required": [ + "file_type", + "format_version", + "transformed_components", + "vertices_columns", + "triangles_columns", + "vertices", + "triangles" + ], + "additionalProperties": false, + "definitions": { + "crs": { + "type": "string" + }, + "datetime": { + "type": "string", + "format": "date-time", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" + }, + "extent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "bbox" + ] + }, + "name" : { + "type": "string", + "description": "Name of the extent (e.g. \"Finland - mainland south of 66°N\")" + }, + "parameters": { + "type": "object", + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + } + } + } + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + } + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/world b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/world new file mode 100644 index 00000000..9119eed8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/assets/cppjs/proj/world @@ -0,0 +1,214 @@ +# SCCSID @(#)world 1.2 95/08/05 GIE REL +# proj +init files for various non-U.S. coordinate systems. +# + +lastupdate=2016-12-12 + + # Swiss Coordinate System + +proj=somerc +lat_0=46d57'8.660"N +lon_0=7d26'22.500"E + +ellps=bessel +x_0=600000 +y_0=200000 + +k_0=1. no_defs <> + # Laborde grid for Madagascar + proj=labrd ellps=intl lon_0=46d26'13.95E lat_0=18d54S + azi=18d54 k_0=.9995 x_0=400000 y_0=800000 + no_defs <> + # New Zealand Map Grid (NZMG) + proj=nzmg # Projection unique to N.Z. so all factors fixed + no_defs <> +# Secondary grids DMA TM8358.1, p. 4.3 + # British West Indies + proj=tmerc ellps=clrk80 lon_0=62W + x_0=400000 k_0=0.9995 + no_defs <> + # Costa Rica Norte + proj=lcc ellps=clrk66 lat_1=10d28N lon_0=84d20W + x_0=500000 y_0=217820.522 k_0=0.99995696 + no_defs <> + # Costa Rica Sud + proj=lcc ellps=clrk66 lat_1=9dN lon_0=83d40W + x_0=500000 y_0=327987.436 k_0=0.99995696 + no_defs <> + # Cuba Norte + proj=lcc ellps=clrk66 lat_1=22d21N lon_0=81dW + x_0=500000 y_0=280296.016 k_0=0.99993602 + no_defs <> + # Cuba Sud + proj=lcc ellps=clrk66 lat_1=20d43'N lon_0=76d50'W + x_0=500000 y_0=229126.939 k_0=0.99994848 + no_defs <> + # Dominican Republic + proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W + x_0=500000 y_0=277063.657 k_0=0.99991102 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=25d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=28d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=31d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=34d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=37d30'E x_0=300000 k_0=0.99985 + no_defs <> + # El Salvador + proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=89dW + x_0=500000 y_0=295809.184 k_0=0.99996704 + no_defs <> + # Guatemala Norte + proj=lcc ellps=clrk66 lat_1=16d49'N lon_0=90d20'W + x_0=500000 y_0=292209.579 k_0=0.99992226 + no_defs <> + # Guatemala Sud + proj=lcc ellps=clrk66 lat_1=14d54'N lon_0=90d20'W + x_0=500000 y_0=325992.681 k_0=0.99989906 + no_defs <> + # Haiti + proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W + x_0=500000 y_0=277063.657 k_0=0.99991102 + no_defs <> + # Honduras Norte + proj=lcc ellps=clrk66 lat_1=15d30'N lon_0=86d10'W + x_0=500000 y_0=296917.439 k_0=0.99993273 + no_defs <> + # Honduras Sud + proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=87d10'W + x_0=500000 y_0=296215.903 k_0=0.99995140 + no_defs <> + # Levant + proj=lcc ellps=clrk66 lat_1=34d39'N lon_0=37d21'E + x_0=500000 y_0=300000 k_0=0.9996256 + no_defs <> + # Nicaragua Norte + proj=lcc ellps=clrk66 lat_1=13d52'N lon_0=85d30'W + x_0=500000 y_0=359891.816 k_0=0.99990314 + no_defs <> + # Nicaragua Sud + proj=lcc ellps=clrk66 lat_1=11d40'N lon_0=85d30'W + x_0=500000 y_0=288876.327 k_0=0.99992228 + no_defs <> + # Northwest Africa + proj=lcc ellps=clrk80 lat_1=34dN lon_0=0dE + x_0=1000000 y_0=500000 k_0=0.99908 + no_defs <> + # Palestine + proj=tmerc a=6378300.79 rf=293.488307656 + lat_0=31d44'2.749"N lon_0=35d12'43.490"E + x_0=170251.555 y_0=126867.909 k_0=1 + no_defs <> + # Panama + proj=lcc ellps=clrk66 lat_1=8d25'N lon_0=80dW + x_0=500000 y_0=294865.303 k_0=0.99989909 + no_defs <> +# other grids in DMA TM8358.1 + # British National Grid + proj=tmerc ellps=airy lat_0=49dN lon_0=2dW + k_0=0.9996012717 x_0=400000 y_0=-100000 + no_defs <> + # West Malaysian RSO Grid + proj=omerc a=6377295.66402 rf=300.8017 alpha=323d01'32.846" + no_uoff rot_conv lonc=102d15E lat_0=4dN k_0=0.99984 x_0=804670.240 y_0=0 + no_defs <> + # India Zone I + proj=lcc ellps=everest lon_0=68E lat_1=32d30'N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIA + proj=lcc ellps=everest lon_0=74E lat_1=26N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIB + proj=lcc ellps=everest lon_0=90E lat_1=26N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIIA + proj=lcc ellps=everest lon_0=80E lat_1=19N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIIB + proj=lcc ellps=everest lon_0=100E lat_1=19N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IVA + proj=lcc ellps=everest lon_0=80E lat_1=12N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IVB + proj=lcc ellps=everest lon_0=104E lat_1=12N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # Ceylon Belt + proj=tmerc ellps=everest lon_0=80d46'18.160"E lat_0=7d0'1.729"N + x_0=160933.56048 y_0=160933.56048 k_0=1. + no_defs <> + # Irish Transverse Mercator Grid + proj=tmerc ellps=mod_airy lat_0=53d30'N lon_0=8W + x_0=200000 y_0=250000 k_0=1.000035 + no_defs <> + # Netherlands East Indies Equatorial Zone + proj=merc ellps=bessel lon_0=110E + x_0=3900000 y_0=900000 k_0=0.997 + no_defs <> + # Nord Algerie Grid + proj=lcc ellps=clrk80 lon_0=2d42E lat_0=36N + x_0=500000 y_0=300000 k_0=0.999625544 + no_defs <> + # Nord Maroc Grid + proj=lcc ellps=clrk80 lon_0=5d24'W lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> + # Nord Tunisie Grid + proj=lcc ellps=clrk80 lon_0=9d54E lat_0=36N + x_0=500000 y_0=300000 k_0=0.999625544 + no_defs <> + # Sud Algerie Grid + proj=lcc ellps=clrk80 lon_0=2d42E lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> + # Sud Maroc Grid + proj=lcc ellps=clrk80 lon_0=5d24W lat_0=29d42'N + x_0=500000 y_0=300000 k_0=0.999615596 + no_defs <> + # Sud Tunisie Grid + proj=lcc ellps=clrk80 lon_0=9d54'E lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> +# Gauss Krueger Grid for Germany +# +# The first figure of the easting is lon_0 divided by 3 +# ( 2 for 6d0E, 3 for 9d0E, 4 for 12d0E) +# For translations you have to remove this first figure +# and convert northings and eastings from km to meter . +# The other way round, divide by 1000 and add the figure. +# I made 3 entries for the officially used grids in Germany +# +# +# Und nochmal in deutsch : +# Die erste Ziffer des Rechtswerts beschreibt den Hauptmeridian +# und ist dessen Gradzahl geteilt durch 3. +# Zum Umrechnen in Grad muss daher die erste Ziffer des Rechtswertes +# entfernt werden und evt. von km auf Metern umgerechnet werden. +# Zur Umrechnung in Gauss Krueger Koordinaten entsprechend die +# Ziffer fuer den Hauptmeridian vor dem Rechtswert ergaenzen. +# Ich hab fuer alle drei in Deutschland ueblichen Hauptmeridiane +# jeweils einen Eintrag ergaenzt. +# +# +# added by Michael Goepel +# + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=6d0E lat_0=0 + x_0=500000 + no_defs<> + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=9d0E lat_0=0 + x_0=500000 + no_defs<> + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=12d0E lat_0=0 + x_0=500000 + no_defs<> + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt new file mode 100644 index 00000000..f183139a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt @@ -0,0 +1,22 @@ +package org.js.cpp.cppjsSampleReactNativeCLI + +import com.facebook.react.ReactActivity +import com.facebook.react.ReactActivityDelegate +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled +import com.facebook.react.defaults.DefaultReactActivityDelegate + +class MainActivity : ReactActivity() { + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + override fun getMainComponentName(): String = "cppjsSampleReactNativeCLI" + + /** + * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] + * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] + */ + override fun createReactActivityDelegate(): ReactActivityDelegate = + DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt new file mode 100644 index 00000000..45c3e4d5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt @@ -0,0 +1,44 @@ +package org.js.cpp.cppjsSampleReactNativeCLI + +import android.app.Application +import com.facebook.react.PackageList +import com.facebook.react.ReactApplication +import com.facebook.react.ReactHost +import com.facebook.react.ReactNativeHost +import com.facebook.react.ReactPackage +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost +import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping +import com.facebook.soloader.SoLoader + +class MainApplication : Application(), ReactApplication { + + override val reactNativeHost: ReactNativeHost = + object : DefaultReactNativeHost(this) { + override fun getPackages(): List = + PackageList(this).packages.apply { + // Packages that cannot be autolinked yet can be added manually here, for example: + // add(MyReactNativePackage()) + } + + override fun getJSMainModuleName(): String = "index" + + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG + + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED + } + + override val reactHost: ReactHost + get() = getDefaultReactHost(applicationContext, reactNativeHost) + + override fun onCreate() { + super.onCreate() + SoLoader.init(this, OpenSourceMergedSoMapping) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } + } +} diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/rn_edit_text_material.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/rn_edit_text_material.xml rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f5908281d070150700378b64a84c7db1f97aa1 GIT binary patch literal 3056 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 axPAxe%7rDusX+w*00006jj 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⁣ zwiG+x#%j}{0gU~J8;<|!B1@-XaB@{KORFwrYg_8rOv({b0EO#DbeQRm;B6_9=mXGf z-x|VL{zd`)#@yN}HkCSJbjbNlE|zL3Wm9Q8HY`sV)}3%pgN>cL^67{Z;PPL(*wT8N zUjXU{@|*hvm}({wsAC=x0^ok0%UAz0;sogW{B!nDqk|JJ5x~4NfTDgP49^zeu`csl?5mY@JdQdISc zFs!E{^grmkLnUk9 zny~m)1vws@5BFI<-0Tuo2JWX(0v`W|t(wg;s--L47WTvTMz-8l#TL^=OJNRS2?_Qj z3AKT+gvbyBi#H*-tJ%tWD|>EV3wy|8qxfzS!5RW;Jpl5*zo&^UBU=fG#2}UvRyNkK zA06Dy9;K1ca@r2T>yThYgI!ont$(G{6q#2QT+00r_x0(b)gsE`lBB?2gr55gq^D3Fi&p%E(p9>U%bv zkg1Jco(RbyTX7FDHOnl7-O@ zI$AaIl?9NJKPm(WiBP`1-#CB1QzU>&hKm)fpa5DKE{2$X0hGz-0uZ?cyTk(YC!Y&| zL=1VrNERSA5NA2jq7FACfX4JfPyj5XXl1yv0>~s;eF7L2$>&oMqeTFT2m$y7FlkON z_yurD1yIOvA;5C6016pyxBznGUt0kJ&k5r#;&>Jow`r)sp9R~PmK~lz$3xH%LT*1U zJdOyABZ3!FvNoR*vN$5ykHS8f`jA4zV+|L}i1C4`B2c{R0;UdYxaU|H)2avz@ z=mEYc|2S<+(B2Tj+FkX+2D+yFI!k9lWMA61DJ{)e;lum$(;O87?vGJJe!KtK04+N_ zI*P~t@dUb>9Xh{dbyl{-ZQ(UMgz7$|QfL5XSPkskt^NgctYC#;4WcZB1@%@wy@2t3 z2z0DI7&%b$*Aw~abe?GxE`ez@+6hOh-6*8fHRV{1os$EL@}uUZeG4h1&Be`98q*7j z=3-v+lhIjfWVo12!<>%V^a6lTgW3+_#W6n|p*~==zOH7z$0{LSZk(Tpd7EaD04hnA zL;#fxS0aD{`5^&D`}>0Uq?byDD-l2=!wm_bLcUl4gc(% za1p|itVANvFF>hghAS07Im1;IK;|b*W)}VDyI;BIp2=K*yu2a)j?B|f<44NI$NbmJ z#dE0>jI$fMr&@>4kN8MLFb4&2O9fEKaQg%(QO$4_1rVQywG^CmBLh#}_7gKW3vd?| z2?1^&KWq8}8I^_S0|)MowU_pw$q@nl@Nkn$z>BQq_KA^9yaR`(R3u{{Ig;cwt z@AJ^{ODQCm^neroM9nKNUAXi9RCK`OsP_LuR0PUR(YZCCX5dNF6VzcoK&=b^r`W?ltt|*F zpkoae%ZT{C1h~EcFui~b7fF`vb<<~j_VquuUA$}QqIKYELPp#;{u?q8Dz}WAG-(3; zjrm$i%7UbyZMM(Y{>!uJ#vNB?R~B{6Htp=>e*<{fQQ5W7V(1coCWlOON!MzZxhum| ztZBQpGR z;~#ur^&PockKdV{Q6R>o`Pl{0x!DEbpZ7y9Y;*ZvE!*gU`V1W3znva{f=?WO5I&>B z&hw6}tjECtaghm5z|C#%M;Yf_*pI^};h}Vl=^r9EN=tVDj86D;C$jIJ?K7VP+00000NkvXXu0mjf D5i!M* literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..459ca609d3ae0d3943ab44cdc27feef9256dc6d7 GIT binary patch literal 7098 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca12fe024be86e868d14e91120a6902f8e88ac6 GIT binary patch literal 6464 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 B0*L?s literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..8e19b410a1b15ff180f3dacac19395fe3046cdec GIT binary patch literal 10676 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..4c19a13c239cb67b8a2134ddd5f325db1d2d5bee GIT binary patch literal 15523 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 BIP(Ai literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..1d042898 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + cppjsSampleReactNativeCLI + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..7ba83a2a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/build.gradle b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/build.gradle new file mode 100644 index 00000000..a9ea0236 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/build.gradle @@ -0,0 +1,21 @@ +buildscript { + ext { + buildToolsVersion = "35.0.0" + minSdkVersion = 24 + compileSdkVersion = 35 + targetSdkVersion = 34 + ndkVersion = "26.1.10909125" + kotlinVersion = "1.9.24" + } + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle") + classpath("com.facebook.react:react-native-gradle-plugin") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") + } +} + +apply plugin: "com.facebook.react.rootproject" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle.properties b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle.properties new file mode 100644 index 00000000..22f57878 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle.properties @@ -0,0 +1,39 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true + +# Use this property to specify which architecture you want to build. +# You can also override it from the CLI using +# ./gradlew -PreactNativeArchitectures=x86_64 +reactNativeArchitectures=arm64-v8a,x86,x86_64 + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=false + +# Use this property to enable or disable the Hermes JS engine. +# If set to false, you will be using JSC instead. +hermesEnabled=true diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..79eb9d00 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew new file mode 100755 index 00000000..f5feea6d --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew.bat b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew.bat new file mode 100644 index 00000000..9b42019c --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/settings.gradle b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/settings.gradle new file mode 100644 index 00000000..4b6310e6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/android/settings.gradle @@ -0,0 +1,6 @@ +pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } +plugins { id("com.facebook.react.settings") } +extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } +rootProject.name = 'cppjsSampleReactNativeCLI' +include ':app' +includeBuild('../node_modules/@react-native/gradle-plugin') diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/app.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/app.json new file mode 100644 index 00000000..85cf02ae --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/app.json @@ -0,0 +1,4 @@ +{ + "name": "cppjsSampleReactNativeCLI", + "displayName": "cppjsSampleReactNativeCLI" +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/babel.config.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/babel.config.js new file mode 100644 index 00000000..f7b3da3b --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:@react-native/babel-preset'], +}; diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp new file mode 100644 index 00000000..4fee74ec --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp @@ -0,0 +1,224 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (https://www.swig.org). + * Version 4.2.1 + * + * Do not make changes to this file unless you know what you are doing - modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +#if __cplusplus >=201103L +# define SWIG_NULLPTR nullptr +#else +# define SWIG_NULLPTR NULL +#endif + +/* ----------------------------------------------------------------------------- + * swigcompat.swg + * + * Macros to provide support compatibility with older C and C++ standards. + * ----------------------------------------------------------------------------- */ + +/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF + * if you're missing it. + */ +#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \ + (defined __cplusplus && __cplusplus >= 201103L) || \ + defined SWIG_HAVE_SNPRINTF) && \ + !defined SWIG_NO_SNPRINTF +# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A) +# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B) +#else +/* Fallback versions ignore the buffer size, but most of our uses either have a + * fixed maximum possible size or dynamically allocate a buffer that's large + * enough. + */ +# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A) +# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B) +#endif + +#include + +#ifdef __cplusplus +#include +/* SwigValueWrapper is described in swig.swg */ +template class SwigValueWrapper { + struct SwigSmartPointer { + T *ptr; + SwigSmartPointer(T *p) : ptr(p) { } + ~SwigSmartPointer() { delete ptr; } + SwigSmartPointer& operator=(SwigSmartPointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } + void reset(T *p) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = p; } + } pointer; + SwigValueWrapper& operator=(const SwigValueWrapper& rhs); + SwigValueWrapper(const SwigValueWrapper& rhs); +public: + SwigValueWrapper() : pointer(0) { } + SwigValueWrapper& operator=(const T& t) { SwigSmartPointer tmp(new T(t)); pointer = tmp; return *this; } +#if __cplusplus >=201103L + SwigValueWrapper& operator=(T&& t) { SwigSmartPointer tmp(new T(std::move(t))); pointer = tmp; return *this; } + operator T&&() const { return std::move(*pointer.ptr); } +#else + operator T&() const { return *pointer.ptr; } +#endif + T *operator&() const { return pointer.ptr; } + static void reset(SwigValueWrapper& t, T *p) { t.pointer.reset(p); } +}; + +/* + * SwigValueInit() is a generic initialisation solution as the following approach: + * + * T c_result = T(); + * + * doesn't compile for all types for example: + * + * unsigned int c_result = unsigned int(); + */ +template T SwigValueInit() { + return T(); +} + +#if __cplusplus >=201103L +# define SWIG_STD_MOVE(OBJ) std::move(OBJ) +#else +# define SWIG_STD_MOVE(OBJ) OBJ +#endif + +#endif + + +#include "native.h" + +EMSCRIPTEN_BINDINGS(Native) { + emscripten::class_("Native") + .smart_ptr>("Native") + .class_function("sample", &Native::sample) + .smart_ptr_constructor("Native", &std::make_shared) + ; +} + +EMSCRIPTEN_BINDINGS(Functions_NATIVE) { + emscripten::register_vector>("VectorNative"); +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json new file mode 100644 index 00000000..285ac4a1 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json @@ -0,0 +1 @@ +["VectorNative", "Native"] diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i new file mode 100644 index 00000000..96459933 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i @@ -0,0 +1,15 @@ +#ifndef _NATIVE_I +#define _NATIVE_I + +%module NATIVE + +%{ +#include "native.h" +%} + +%feature("shared_ptr"); +%feature("polymorphic_shared_ptr"); + +%include "native.h" + +#endif diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/cache.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/cache.json new file mode 100644 index 00000000..27fc00d8 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ci/.cppjs/cache.json @@ -0,0 +1,12 @@ +{ + "hashes": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.h": "d105082c6e8c8652ea461e161c501e824b6b625f7b819490102c5c0699744249", + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i": "eab7d231467438ee3e5f5af1c3ae64919c0514393461653981fb40f26b5edad3" + }, + "interfaces": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.h": "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i" + }, + "bridges": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i": "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/bridge/native.i.cpp" + } +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/cppjs.config.mjs b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/cppjs.config.mjs new file mode 100644 index 00000000..12eda2e3 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/cppjs.config.mjs @@ -0,0 +1,37 @@ +import matrix from '@cpp.js/sample-lib-prebuilt-matrix/cppjs.config.js'; +import curl from '@cpp.js/package-curl/cppjs.config.js'; +import expat from '@cpp.js/package-expat/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal/cppjs.config.js'; +import geos from '@cpp.js/package-geos/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl/cppjs.config.js'; +import proj from '@cpp.js/package-proj/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff/cppjs.config.js'; +import webp from '@cpp.js/package-webp/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + dependencies: [ + matrix, + curl, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/index.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/index.js new file mode 100644 index 00000000..69303b34 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/index.js @@ -0,0 +1,9 @@ +/** + * @format + */ + +import {AppRegistry} from 'react-native'; +import App from './src/App'; +import {name as appName} from './app.json'; + +AppRegistry.registerComponent(appName, () => App); diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/.xcode.env b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/.xcode.env similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/.xcode.env rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/.xcode.env diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile new file mode 100644 index 00000000..2973470e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile @@ -0,0 +1,40 @@ +# Resolve react_native_pods.rb with node to allow for hoisting +require Pod::Executable.execute_command('node', ['-p', + 'require.resolve( + "react-native/scripts/react_native_pods.rb", + {paths: [process.argv[1]]}, + )', __dir__]).strip + +platform :ios, min_ios_version_supported +prepare_react_native_project! + +linkage = ENV['USE_FRAMEWORKS'] +if linkage != nil + Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green + use_frameworks! :linkage => linkage.to_sym +end + +target 'cppjsSampleReactNativeCLI' do + config = use_native_modules! + + use_react_native!( + :path => config[:reactNativePath], + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." + ) + + target 'cppjsSampleReactNativeCLITests' do + inherit! :complete + # Pods for testing + end + + post_install do |installer| + # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 + react_native_post_install( + installer, + config[:reactNativePath], + :mac_catalyst_enabled => false, + # :ccache_enabled => true + ) + end +end diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile.lock b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile.lock new file mode 100644 index 00000000..040fb4e2 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/Podfile.lock @@ -0,0 +1,1873 @@ +PODS: + - boost (1.84.0) + - cppjs-package-curl (8.13.0) + - cppjs-package-expat (2.7.1) + - cppjs-package-gdal (3.10.3) + - cppjs-package-geos (3.13.1) + - cppjs-package-geotiff (1.7.4) + - cppjs-package-iconv (1.18) + - cppjs-package-openssl (3.5.0) + - cppjs-package-proj (9.6.0) + - cppjs-package-spatialite (5.1.0) + - cppjs-package-tiff (4.7.0) + - cppjs-package-webp (1.5.0) + - cppjs-sample-lib-prebuilt-matrix (1.0.0) + - DoubleConversion (1.1.6) + - FBLazyVector (0.76.5) + - fmt (9.1.0) + - glog (0.3.5) + - hermes-engine (0.76.5): + - hermes-engine/Pre-built (= 0.76.5) + - hermes-engine/Pre-built (0.76.5) + - RCT-Folly (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Default (= 2024.01.01.00) + - RCT-Folly/Default (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCTDeprecation (0.76.5) + - RCTRequired (0.76.5) + - RCTTypeSafety (0.76.5): + - FBLazyVector (= 0.76.5) + - RCTRequired (= 0.76.5) + - React-Core (= 0.76.5) + - React (0.76.5): + - React-Core (= 0.76.5) + - React-Core/DevSupport (= 0.76.5) + - React-Core/RCTWebSocket (= 0.76.5) + - React-RCTActionSheet (= 0.76.5) + - React-RCTAnimation (= 0.76.5) + - React-RCTBlob (= 0.76.5) + - React-RCTImage (= 0.76.5) + - React-RCTLinking (= 0.76.5) + - React-RCTNetwork (= 0.76.5) + - React-RCTSettings (= 0.76.5) + - React-RCTText (= 0.76.5) + - React-RCTVibration (= 0.76.5) + - React-callinvoker (0.76.5) + - React-Core (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.76.5) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/CoreModulesHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/Default (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/DevSupport (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.76.5) + - React-Core/RCTWebSocket (= 0.76.5) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTActionSheetHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTAnimationHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTBlobHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTImageHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTLinkingHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTNetworkHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTSettingsHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTTextHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTVibrationHeaders (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTWebSocket (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.76.5) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-CoreModules (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety (= 0.76.5) + - React-Core/CoreModulesHeaders (= 0.76.5) + - React-jsi (= 0.76.5) + - React-jsinspector + - React-NativeModulesApple + - React-RCTBlob + - React-RCTImage (= 0.76.5) + - ReactCodegen + - ReactCommon + - SocketRocket (= 0.7.1) + - React-cxxreact (0.76.5): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-debug (= 0.76.5) + - React-jsi (= 0.76.5) + - React-jsinspector + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - React-runtimeexecutor (= 0.76.5) + - React-timing (= 0.76.5) + - React-debug (0.76.5) + - React-defaultsnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-domnativemodule + - React-Fabric + - React-featureflags + - React-featureflagsnativemodule + - React-graphics + - React-idlecallbacksnativemodule + - React-ImageManager + - React-microtasksnativemodule + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-domnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricComponents + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/animations (= 0.76.5) + - React-Fabric/attributedstring (= 0.76.5) + - React-Fabric/componentregistry (= 0.76.5) + - React-Fabric/componentregistrynative (= 0.76.5) + - React-Fabric/components (= 0.76.5) + - React-Fabric/core (= 0.76.5) + - React-Fabric/dom (= 0.76.5) + - React-Fabric/imagemanager (= 0.76.5) + - React-Fabric/leakchecker (= 0.76.5) + - React-Fabric/mounting (= 0.76.5) + - React-Fabric/observers (= 0.76.5) + - React-Fabric/scheduler (= 0.76.5) + - React-Fabric/telemetry (= 0.76.5) + - React-Fabric/templateprocessor (= 0.76.5) + - React-Fabric/uimanager (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/components/legacyviewmanagerinterop (= 0.76.5) + - React-Fabric/components/root (= 0.76.5) + - React-Fabric/components/view (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric/core (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/dom (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/imagemanager (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/leakchecker (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/mounting (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/observers/events (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers/events (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/scheduler (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/observers/events + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-performancetimeline + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/telemetry (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/templateprocessor (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/uimanager/consistency (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager/consistency (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-FabricComponents (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-FabricComponents/components (= 0.76.5) + - React-FabricComponents/textlayoutmanager (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-FabricComponents/components/inputaccessory (= 0.76.5) + - React-FabricComponents/components/iostextinput (= 0.76.5) + - React-FabricComponents/components/modal (= 0.76.5) + - React-FabricComponents/components/rncore (= 0.76.5) + - React-FabricComponents/components/safeareaview (= 0.76.5) + - React-FabricComponents/components/scrollview (= 0.76.5) + - React-FabricComponents/components/text (= 0.76.5) + - React-FabricComponents/components/textinput (= 0.76.5) + - React-FabricComponents/components/unimplementedview (= 0.76.5) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/inputaccessory (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/iostextinput (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/modal (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/rncore (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/safeareaview (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/scrollview (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/text (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/textinput (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/unimplementedview (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/textlayoutmanager (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - Yoga + - React-FabricImage (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired (= 0.76.5) + - RCTTypeSafety (= 0.76.5) + - React-Fabric + - React-graphics + - React-ImageManager + - React-jsi + - React-jsiexecutor (= 0.76.5) + - React-logger + - React-rendererdebug + - React-utils + - ReactCommon + - Yoga + - React-featureflags (0.76.5) + - React-featureflagsnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-graphics (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-jsi + - React-jsiexecutor + - React-utils + - React-hermes (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.76.5) + - React-jsi + - React-jsiexecutor (= 0.76.5) + - React-jsinspector + - React-perflogger (= 0.76.5) + - React-runtimeexecutor + - React-idlecallbacksnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-ImageManager (0.76.5): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-graphics + - React-rendererdebug + - React-utils + - React-jserrorhandler (0.76.5): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-cxxreact + - React-debug + - React-jsi + - React-jsi (0.76.5): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-jsiexecutor (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.76.5) + - React-jsi (= 0.76.5) + - React-jsinspector + - React-perflogger (= 0.76.5) + - React-jsinspector (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-featureflags + - React-jsi + - React-perflogger (= 0.76.5) + - React-runtimeexecutor (= 0.76.5) + - React-jsitracing (0.76.5): + - React-jsi + - React-logger (0.76.5): + - glog + - React-Mapbuffer (0.76.5): + - glog + - React-debug + - React-microtasksnativemodule (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-cppjs (1.0.2) + - react-native-cppjs-ios-helper (1.0.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-nativeconfig (0.76.5) + - React-NativeModulesApple (0.76.5): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-jsinspector + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.76.5): + - DoubleConversion + - RCT-Folly (= 2024.01.01.00) + - React-performancetimeline (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact + - React-timing + - React-RCTActionSheet (0.76.5): + - React-Core/RCTActionSheetHeaders (= 0.76.5) + - React-RCTAnimation (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-RCTAppDelegate (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-CoreModules + - React-debug + - React-defaultsnativemodule + - React-Fabric + - React-featureflags + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon + - React-RCTBlob (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-jsinspector + - React-NativeModulesApple + - React-RCTNetwork + - ReactCodegen + - ReactCommon + - React-RCTFabric (0.76.5): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricComponents + - React-FabricImage + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsinspector + - React-nativeconfig + - React-performancetimeline + - React-RCTImage + - React-RCTText + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTImage (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCodegen + - ReactCommon + - React-RCTLinking (0.76.5): + - React-Core/RCTLinkingHeaders (= 0.76.5) + - React-jsi (= 0.76.5) + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - ReactCommon/turbomodule/core (= 0.76.5) + - React-RCTNetwork (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-RCTSettings (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-RCTText (0.76.5): + - React-Core/RCTTextHeaders (= 0.76.5) + - Yoga + - React-RCTVibration (0.76.5): + - RCT-Folly (= 2024.01.01.00) + - React-Core/RCTVibrationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCodegen + - ReactCommon + - React-rendererconsistency (0.76.5) + - React-rendererdebug (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-rncore (0.76.5) + - React-RuntimeApple (0.76.5): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - React-RuntimeCore (0.76.5): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-cxxreact + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-performancetimeline + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - React-runtimeexecutor (0.76.5): + - React-jsi (= 0.76.5) + - React-RuntimeHermes (0.76.5): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-featureflags + - React-hermes + - React-jsi + - React-jsinspector + - React-jsitracing + - React-nativeconfig + - React-RuntimeCore + - React-utils + - React-runtimescheduler (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - React-performancetimeline + - React-rendererconsistency + - React-rendererdebug + - React-runtimeexecutor + - React-timing + - React-utils + - React-timing (0.76.5) + - React-utils (0.76.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-jsi (= 0.76.5) + - ReactCodegen (0.76.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactCommon (0.76.5): + - ReactCommon/turbomodule (= 0.76.5) + - ReactCommon/turbomodule (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-cxxreact (= 0.76.5) + - React-jsi (= 0.76.5) + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - ReactCommon/turbomodule/bridging (= 0.76.5) + - ReactCommon/turbomodule/core (= 0.76.5) + - ReactCommon/turbomodule/bridging (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-cxxreact (= 0.76.5) + - React-jsi (= 0.76.5) + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - ReactCommon/turbomodule/core (0.76.5): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.76.5) + - React-cxxreact (= 0.76.5) + - React-debug (= 0.76.5) + - React-featureflags (= 0.76.5) + - React-jsi (= 0.76.5) + - React-logger (= 0.76.5) + - React-perflogger (= 0.76.5) + - React-utils (= 0.76.5) + - SocketRocket (0.7.1) + - Yoga (0.0.0) + +DEPENDENCIES: + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - "cppjs-package-curl (from `../node_modules/@cpp.js/package-curl`)" + - "cppjs-package-expat (from `../node_modules/@cpp.js/package-expat`)" + - "cppjs-package-gdal (from `../node_modules/@cpp.js/package-gdal`)" + - "cppjs-package-geos (from `../node_modules/@cpp.js/package-geos`)" + - "cppjs-package-geotiff (from `../node_modules/@cpp.js/package-geotiff`)" + - "cppjs-package-iconv (from `../node_modules/@cpp.js/package-iconv`)" + - "cppjs-package-openssl (from `../node_modules/@cpp.js/package-openssl`)" + - "cppjs-package-proj (from `../node_modules/@cpp.js/package-proj`)" + - "cppjs-package-spatialite (from `../node_modules/@cpp.js/package-spatialite`)" + - "cppjs-package-tiff (from `../node_modules/@cpp.js/package-tiff`)" + - "cppjs-package-webp (from `../node_modules/@cpp.js/package-webp`)" + - "cppjs-sample-lib-prebuilt-matrix (from `../node_modules/@cpp.js/sample-lib-prebuilt-matrix`)" + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) + - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) + - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - "react-native-cppjs (from `../node_modules/@cpp.js/plugin-react-native`)" + - "react-native-cppjs-ios-helper (from `../node_modules/@cpp.js/plugin-react-native-ios-helper`)" + - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) + - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) + - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - ReactCodegen (from `build/generated/ios`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - SocketRocket + +EXTERNAL SOURCES: + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + cppjs-package-curl: + :path: "../node_modules/@cpp.js/package-curl" + cppjs-package-expat: + :path: "../node_modules/@cpp.js/package-expat" + cppjs-package-gdal: + :path: "../node_modules/@cpp.js/package-gdal" + cppjs-package-geos: + :path: "../node_modules/@cpp.js/package-geos" + cppjs-package-geotiff: + :path: "../node_modules/@cpp.js/package-geotiff" + cppjs-package-iconv: + :path: "../node_modules/@cpp.js/package-iconv" + cppjs-package-openssl: + :path: "../node_modules/@cpp.js/package-openssl" + cppjs-package-proj: + :path: "../node_modules/@cpp.js/package-proj" + cppjs-package-spatialite: + :path: "../node_modules/@cpp.js/package-spatialite" + cppjs-package-tiff: + :path: "../node_modules/@cpp.js/package-tiff" + cppjs-package-webp: + :path: "../node_modules/@cpp.js/package-webp" + cppjs-sample-lib-prebuilt-matrix: + :path: "../node_modules/@cpp.js/sample-lib-prebuilt-matrix" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :tag: hermes-2024-11-12-RNv0.76.2-5b4aa20c719830dcf5684832b89a6edb95ac3d64 + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" + RCTRequired: + :path: "../node_modules/react-native/Libraries/Required" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-callinvoker: + :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-debug: + :path: "../node_modules/react-native/ReactCommon/react/debug" + React-defaultsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" + React-domnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-FabricComponents: + :path: "../node_modules/react-native/ReactCommon" + React-FabricImage: + :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" + React-featureflagsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" + React-idlecallbacksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jserrorhandler: + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../node_modules/react-native/ReactCommon" + React-microtasksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + react-native-cppjs: + :path: "../node_modules/@cpp.js/plugin-react-native" + react-native-cppjs-ios-helper: + :path: "../node_modules/@cpp.js/plugin-react-native-ios-helper" + React-nativeconfig: + :path: "../node_modules/react-native/ReactCommon" + React-NativeModulesApple: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" + React-performancetimeline: + :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTAppDelegate: + :path: "../node_modules/react-native/Libraries/AppDelegate" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTFabric: + :path: "../node_modules/react-native/React" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + React-rendererconsistency: + :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" + React-rendererdebug: + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-rncore: + :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimescheduler: + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-timing: + :path: "../node_modules/react-native/ReactCommon/react/timing" + React-utils: + :path: "../node_modules/react-native/ReactCommon/react/utils" + ReactCodegen: + :path: build/generated/ios + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + boost: 1dca942403ed9342f98334bf4c3621f011aa7946 + cppjs-package-curl: 942724c2d9a4e687595e2af8f0863622a854f2fd + cppjs-package-expat: 37a91f5c97b1d74795bc88ade4c67da87b335416 + cppjs-package-gdal: 52c9af11e2c76c7008da16614dcb74a3d0c84d48 + cppjs-package-geos: 855187c64eb39bf0749b0348e86af0d0cfd81f0d + cppjs-package-geotiff: aab266e07e5b65b13a4c9bc3a856accd5c500c61 + cppjs-package-iconv: f969f8a8f13d5d3db29417984f431c538d645f62 + cppjs-package-openssl: 172f889648f481310a8683198cb529a49847951d + cppjs-package-proj: 55bcb7cad2ecd0d41d76206a67bc986f3cce3a34 + cppjs-package-spatialite: 3109342e98d1dcc689f8b26c96c7a06af786affa + cppjs-package-tiff: 64793ed38c427c46dc24aed756de6d503245ad44 + cppjs-package-webp: abeb4578202b55b99148a31b520daa730e4e7f12 + cppjs-sample-lib-prebuilt-matrix: 308a1c7c72927057bd919ba97e5bf3ecf904911a + DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 + FBLazyVector: 1bf99bb46c6af9a2712592e707347315f23947aa + fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be + glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a + hermes-engine: 06a9c6900587420b90accc394199527c64259db4 + RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648 + RCTDeprecation: fb7d408617e25d7f537940000d766d60149c5fea + RCTRequired: 9aaf0ffcc1f41f0c671af863970ef25c422a9920 + RCTTypeSafety: e9a6e7d48184646eb0610295b74c0dd02768cbb2 + React: fffb3cf1b0d7aee03c4eb4952b2d58783615e9fa + React-callinvoker: 3c6ecc0315d42924e01b3ddc25cf2e49d33da169 + React-Core: d2143ba58d0c8563cf397f96f699c6069eba951c + React-CoreModules: b3cbc5e3090a8c23116c0c7dd8998e0637e29619 + React-cxxreact: 68fb9193582c4a411ce99d0b23f7b3d8da1c2e4a + React-debug: 297ed67868a76e8384669ea9b5c65c5d9d9d15d9 + React-defaultsnativemodule: 9726dafb3b20bb49f9eac5993418aaa7ddb6a80d + React-domnativemodule: ff049da74cb1be08b7cd71cdbc7bb5b335e04d8e + React-Fabric: 2e33816098a5a29d2f4ae7eb2de3cfbc361b6922 + React-FabricComponents: bb2d6b89321bf79653ae3d4ec890ba7cb9fe51c8 + React-FabricImage: 019a5e834378e460ef39bf19cb506fd36491ae74 + React-featureflags: cb3dca1c74ba813f2e578c8c635989d01d14739f + React-featureflagsnativemodule: 4a1eaf7a29e48ddd60bce9a2f4c4ef74dc3b9e53 + React-graphics: e626f3b24227a3a8323ed89476c8f0927c0264c7 + React-hermes: 63678d262d94835f986fa2fac1c835188f14160b + React-idlecallbacksnativemodule: 7a25d2bff611677bbc2eab428e7bfd02f7418b42 + React-ImageManager: 223709133aa644bc1e74d354308cf2ed4c9d0f00 + React-jserrorhandler: 212d88de95b23965fdff91c1a20da30e29cdfbbb + React-jsi: d189a2a826fe6700ea1194e1c2b15535d06c8d75 + React-jsiexecutor: b75a12d37f2bf84f74b5c05131afdef243cfc69d + React-jsinspector: c3402468ae1fbca79e3d8cc11e7a0fc2c8ffafb1 + React-jsitracing: 1f46c2ec0c5ace3fe959b1aa0f8535ef1c021161 + React-logger: 697873f06b8ba436e3cddf28018ab4741e8071b6 + React-Mapbuffer: c174e11bdea12dce07df8669d6c0dc97eb0c7706 + React-microtasksnativemodule: 8a80099ad7391f4e13a48b12796d96680f120dc6 + react-native-cppjs: a557b429a0f33cd5ab0603335113c01f9355fe59 + react-native-cppjs-ios-helper: 24275032a6124028683462f9835d40c135fd6e49 + React-nativeconfig: f7ab6c152e780b99a8c17448f2d99cf5f69a2311 + React-NativeModulesApple: 70600f7edfc2c2a01e39ab13a20fd59f4c60df0b + React-perflogger: ceb97dd4e5ca6ff20eebb5a6f9e00312dcdea872 + React-performancetimeline: e39f038509c2a6b2ddb85087ba7cb8bd9caf977d + React-RCTActionSheet: a4388035260b01ac38d3647da0433b0455da9bae + React-RCTAnimation: 84117cb3521c40e95a4edfeab1c1cb159bc9a7c3 + React-RCTAppDelegate: df039dffb7adbc2e4a8ce951d1b2842f1846f43e + React-RCTBlob: 947cbb49842c9141e2b21f719e83e9197a06e453 + React-RCTFabric: 8f8afe72401ddfca2bd8b488d2d9eb0deee0b4bf + React-RCTImage: 367a7dcca1d37b04e28918c025a0101494fb2a19 + React-RCTLinking: b9dc797e49683a98ee4f703f1f01ec2bd69ceb7f + React-RCTNetwork: 16e92fb59b9cd1e1175ecb2e90aa9e06e82db7a3 + React-RCTSettings: 20a1c3316956fae137d8178b4c23b7a1d56674cc + React-RCTText: 59d8792076b6010f7305f2558d868025004e108b + React-RCTVibration: 597d5aba0212d709ec79d12e76285c3d94dc0658 + React-rendererconsistency: 42f182fe910ad6c9b449cc62adae8d0eaba76f0a + React-rendererdebug: f36daf9f79831c8785215048fad4ef6453834430 + React-rncore: 85ed76036ff56e2e9c369155027cbbd84db86006 + React-RuntimeApple: 6ca44fc23bb00474f9387c0709f23d4dade79800 + React-RuntimeCore: b4d723e516e2e24616eb72de5b41a68b0736cc02 + React-runtimeexecutor: 10fae9492194097c99f6e34cedbb42a308922d32 + React-RuntimeHermes: 93437bfc028ba48122276e2748c7cd0f9bbcdb40 + React-runtimescheduler: 72bbb4bd4774a0f4f9a7e84dbf133213197a0828 + React-timing: 1050c6fa44c327f2d7538e10c548fdf521fabdb8 + React-utils: 541c6cca08f32597d4183f00e83eef2ed20d4c54 + ReactCodegen: daa13d9e48c9bdb1daac4bd694b9dd54e06681df + ReactCommon: a6b87a7591591f7a52d9c0fec3aa05e0620d5dd3 + SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 + Yoga: c7ea4c36c1d78ebbf45529b6e78283e4e0fe4956 + +PODFILE CHECKSUM: 324f2d96aaf384682c14f2adfe36d1a2beacdf55 + +COCOAPODS: 1.15.2 diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj new file mode 100644 index 00000000..696ede33 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 00E356F31AD99517003FC87E /* cppjsSampleReactNativeCLITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* cppjsSampleReactNativeCLITests.m */; }; + 0C80B921A6F3F58F76C31292 /* libPods-cppjsSampleReactNativeCLI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-cppjsSampleReactNativeCLI.a */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 296156FC570FABDD95D8FC2C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; }; + 7699B88040F8A987B510C191 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a */; }; + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = cppjsSampleReactNativeCLI; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00E356EE1AD99517003FC87E /* cppjsSampleReactNativeCLITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = cppjsSampleReactNativeCLITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* cppjsSampleReactNativeCLITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = cppjsSampleReactNativeCLITests.m; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* cppjsSampleReactNativeCLI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = cppjsSampleReactNativeCLI.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = cppjsSampleReactNativeCLI/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = cppjsSampleReactNativeCLI/AppDelegate.mm; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = cppjsSampleReactNativeCLI/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = cppjsSampleReactNativeCLI/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = cppjsSampleReactNativeCLI/main.m; sourceTree = ""; }; + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B4392A12AC88292D35C810B /* Pods-cppjsSampleReactNativeCLI.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI.debug.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI.debug.xcconfig"; sourceTree = ""; }; + 5709B34CF0A7D63546082F79 /* Pods-cppjsSampleReactNativeCLI.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI.release.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI.release.xcconfig"; sourceTree = ""; }; + 5B7EB9410499542E8C5724F5 /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig"; sourceTree = ""; }; + 5DCACB8F33CDC322A6C60F78 /* libPods-cppjsSampleReactNativeCLI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cppjsSampleReactNativeCLI.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = cppjsSampleReactNativeCLI/LaunchScreen.storyboard; sourceTree = ""; }; + 89C6BE57DB24E9ADA2F236DE /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig"; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00E356EB1AD99517003FC87E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7699B88040F8A987B510C191 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0C80B921A6F3F58F76C31292 /* libPods-cppjsSampleReactNativeCLI.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00E356EF1AD99517003FC87E /* cppjsSampleReactNativeCLITests */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* cppjsSampleReactNativeCLITests.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = cppjsSampleReactNativeCLITests; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* cppjsSampleReactNativeCLI */ = { + isa = PBXGroup; + children = ( + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, + 13B07FB71A68108700A75B9A /* main.m */, + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, + ); + name = cppjsSampleReactNativeCLI; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + 5DCACB8F33CDC322A6C60F78 /* libPods-cppjsSampleReactNativeCLI.a */, + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* cppjsSampleReactNativeCLI */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* cppjsSampleReactNativeCLITests */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + BBD78D7AC51CEA395F1C20DB /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* cppjsSampleReactNativeCLI.app */, + 00E356EE1AD99517003FC87E /* cppjsSampleReactNativeCLITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + BBD78D7AC51CEA395F1C20DB /* Pods */ = { + isa = PBXGroup; + children = ( + 3B4392A12AC88292D35C810B /* Pods-cppjsSampleReactNativeCLI.debug.xcconfig */, + 5709B34CF0A7D63546082F79 /* Pods-cppjsSampleReactNativeCLI.release.xcconfig */, + 5B7EB9410499542E8C5724F5 /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig */, + 89C6BE57DB24E9ADA2F236DE /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 00E356ED1AD99517003FC87E /* cppjsSampleReactNativeCLITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLITests" */; + buildPhases = ( + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, + 00E356EA1AD99517003FC87E /* Sources */, + 00E356EB1AD99517003FC87E /* Frameworks */, + 00E356EC1AD99517003FC87E /* Resources */, + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 00E356F51AD99517003FC87E /* PBXTargetDependency */, + ); + name = cppjsSampleReactNativeCLITests; + productName = cppjsSampleReactNativeCLITests; + productReference = 00E356EE1AD99517003FC87E /* cppjsSampleReactNativeCLITests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 13B07F861A680F5B00A75B9A /* cppjsSampleReactNativeCLI */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLI" */; + buildPhases = ( + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = cppjsSampleReactNativeCLI; + productName = cppjsSampleReactNativeCLI; + productReference = 13B07F961A680F5B00A75B9A /* cppjsSampleReactNativeCLI.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1210; + TargetAttributes = { + 00E356ED1AD99517003FC87E = { + CreatedOnToolsVersion = 6.2; + TestTargetID = 13B07F861A680F5B00A75B9A; + }; + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1120; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "cppjsSampleReactNativeCLI" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* cppjsSampleReactNativeCLI */, + 00E356ED1AD99517003FC87E /* cppjsSampleReactNativeCLITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 00E356EC1AD99517003FC87E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 296156FC570FABDD95D8FC2C /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-cppjsSampleReactNativeCLI-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 00E356EA1AD99517003FC87E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00E356F31AD99517003FC87E /* cppjsSampleReactNativeCLITests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 13B07F861A680F5B00A75B9A /* cppjsSampleReactNativeCLI */; + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 00E356F61AD99517003FC87E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = cppjsSampleReactNativeCLITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/cppjsSampleReactNativeCLI.app/cppjsSampleReactNativeCLI"; + }; + name = Debug; + }; + 00E356F71AD99517003FC87E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = cppjsSampleReactNativeCLITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/cppjsSampleReactNativeCLI.app/cppjsSampleReactNativeCLI"; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-cppjsSampleReactNativeCLI.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = cppjsSampleReactNativeCLI/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = cppjsSampleReactNativeCLI; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-cppjsSampleReactNativeCLI.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = cppjsSampleReactNativeCLI/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = cppjsSampleReactNativeCLI; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + "-DFOLLY_CFG_NO_COROUTINES=1", + "-DFOLLY_HAVE_CLOCK_GETTIME=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + USE_HERMES = true; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + "-DFOLLY_CFG_NO_COROUTINES=1", + "-DFOLLY_HAVE_CLOCK_GETTIME=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + USE_HERMES = true; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00E356F61AD99517003FC87E /* Debug */, + 00E356F71AD99517003FC87E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "cppjsSampleReactNativeCLI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme new file mode 100644 index 00000000..e88cf906 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..ec53ec93 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h new file mode 100644 index 00000000..5d280825 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : RCTAppDelegate + +@end diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm new file mode 100644 index 00000000..54d44b92 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm @@ -0,0 +1,31 @@ +#import "AppDelegate.h" + +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + self.moduleName = @"cppjsSampleReactNativeCLI"; + // You can add your custom initial props in the dictionary below. + // They will be passed down to the ViewController used by React Native. + self.initialProps = @{}; + + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ + return [self bundleURL]; +} + +- (NSURL *)bundleURL +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +@end diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..81213230 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,53 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json new file mode 100644 index 00000000..2d92bd53 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist new file mode 100644 index 00000000..415a2922 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist @@ -0,0 +1,52 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + cppjsSampleReactNativeCLI + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSRequiresIPhoneOS + + NSAppTransportSecurity + + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + NSLocationWhenInUseUsageDescription + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard new file mode 100644 index 00000000..88b1fc62 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy new file mode 100644 index 00000000..41b8317f --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy @@ -0,0 +1,37 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m new file mode 100644 index 00000000..d645c724 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m @@ -0,0 +1,10 @@ +#import + +#import "AppDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist new file mode 100644 index 00000000..ba72822e --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m new file mode 100644 index 00000000..3539b7ee --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m @@ -0,0 +1,66 @@ +#import +#import + +#import +#import + +#define TIMEOUT_SECONDS 600 +#define TEXT_TO_LOOK_FOR @"Welcome to React" + +@interface cppjsSampleReactNativeCLITests : XCTestCase + +@end + +@implementation cppjsSampleReactNativeCLITests + +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test +{ + if (test(view)) { + return YES; + } + for (UIView *subview in [view subviews]) { + if ([self findSubviewInView:subview matching:test]) { + return YES; + } + } + return NO; +} + +- (void)testRendersWelcomeScreen +{ + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; + BOOL foundElement = NO; + + __block NSString *redboxError = nil; +#ifdef DEBUG + RCTSetLogFunction( + ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + if (level >= RCTLogLevelError) { + redboxError = message; + } + }); +#endif + + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + + foundElement = [self findSubviewInView:vc.view + matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; + } + +#ifdef DEBUG + RCTSetLogFunction(RCTDefaultLogFunction); +#endif + + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); +} + +@end diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/jest.config.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/jest.config.js new file mode 100644 index 00000000..8eb675e9 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/jest.config.js @@ -0,0 +1,3 @@ +module.exports = { + preset: 'react-native', +}; diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/maestro.yaml b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/maestro.yaml new file mode 100644 index 00000000..7fea8147 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/maestro.yaml @@ -0,0 +1,4 @@ +appId: org.js.cpp.cppjsSampleReactNativeCLI +--- +- launchApp +- assertVisible: 'Matrix multiplier with c++.*=>.*J₃ \* \(2\*J₃\) = 6\*J₃' diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/metro.config.js b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/metro.config.js new file mode 100644 index 00000000..21030053 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/metro.config.js @@ -0,0 +1,18 @@ +const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); +const CppjsMetroPlugin = require('@cpp.js/plugin-metro'); + +const defaultConfig = getDefaultConfig(__dirname); + +/** + * Metro configuration + * https://reactnative.dev/docs/metro + * + * @type {import('metro-config').MetroConfig} + */ +const config = { + ...CppjsMetroPlugin(defaultConfig), + resetCache: true, + watchFolders: [ require('path').resolve('../../') ], /* Delete this line for create-cpp.js */ +}; + +module.exports = mergeConfig(defaultConfig, config); diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/package.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/package.json new file mode 100644 index 00000000..70511f1a --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/package.json @@ -0,0 +1,72 @@ +{ + "name": "@cpp.js/playground-mobile-reactnative-cli", + "version": "1.0.1", + "description": "Cpp.js React Native sample", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-playground-mobile-reactnative-cli#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "scripts": { + "android": "react-native run-android", + "ios": "react-native run-ios", + "lint": "eslint .", + "start": "react-native start", + "test": "jest", + "run:android": "react-native run-android --no-packager --mode Release", + "run:ios": "react-native run-ios --no-packager --mode Release" + }, + "dependencies": { + "@cpp.js/core-embind-jsi": "workspace:^", + "@cpp.js/plugin-metro": "workspace:^", + "@cpp.js/plugin-react-native": "workspace:^", + "@cpp.js/plugin-react-native-ios-helper": "workspace:^", + "@cpp.js/sample-lib-prebuilt-matrix": "workspace:^", + "@cpp.js/package-curl": "workspace:^", + "@cpp.js/package-expat": "workspace:^", + "@cpp.js/package-gdal": "workspace:^", + "@cpp.js/package-geos": "workspace:^", + "@cpp.js/package-geotiff": "workspace:^", + "@cpp.js/package-iconv": "workspace:^", + "@cpp.js/package-openssl": "workspace:^", + "@cpp.js/package-proj": "workspace:^", + "@cpp.js/package-spatialite": "workspace:^", + "@cpp.js/package-sqlite3": "workspace:^", + "@cpp.js/package-tiff": "workspace:^", + "@cpp.js/package-webp": "workspace:^", + "@cpp.js/package-zlib": "workspace:^", + "react": "18.3.1", + "react-native": "0.76.5" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/preset-env": "^7.25.3", + "@babel/runtime": "^7.25.0", + "@react-native-community/cli": "15.0.1", + "@react-native-community/cli-platform-android": "15.0.1", + "@react-native-community/cli-platform-ios": "15.0.1", + "@react-native/babel-preset": "0.76.5", + "@react-native/eslint-config": "0.76.5", + "@react-native/gradle-plugin": "0.76.5", + "@react-native/metro-config": "0.76.5", + "@react-native/typescript-config": "0.76.5", + "@types/react": "^18.2.6", + "@types/react-test-renderer": "^18.0.0", + "babel-jest": "^29.6.3", + "eslint": "^8.19.0", + "jest": "^29.6.3", + "prettier": "2.8.8", + "react-test-renderer": "18.3.1", + "typescript": "5.0.4" + }, + "engines": { + "node": ">=18" + }, + "keywords": [ + "cpp.js-sample", + "react-native", + "bind", + "c++", + "android", + "ios", + "mobile" + ] +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/App.tsx b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/App.tsx new file mode 100644 index 00000000..2cdfe1b6 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/App.tsx @@ -0,0 +1,45 @@ +/** + * Sample React Native App + * https://github.com/facebook/react-native + * + * @format + */ + +import React, { useState, useEffect } from 'react'; +import { SafeAreaView, Text, StyleSheet, View} from 'react-native'; + +import { initCppJs, Native } from './native/native.h'; + +function App(): React.JSX.Element { + const [message, setMessage] = useState('compiling ...'); + + useEffect(() => { + initCppJs().then(() => { + setMessage(Native.sample()); + }); + }, []); + + return ( + + + Matrix multiplier with c++   =>   {message} + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#242424' + }, + text: { + color: '#FFFFFF', + fontWeight: 'bold', + fontSize: 30, + }, + }); + +export default App; diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/native/native.cpp b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/native/native.cpp new file mode 100644 index 00000000..ebc62c81 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/native/native.cpp @@ -0,0 +1,3 @@ +#include "native.h" + +std::string Native::sample() { return "hello"; } diff --git a/packages/cppjs-sample-mobile-reactnative-cli/src/native/native.h b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/native/native.h similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/src/native/native.h rename to cppjs-samples/cppjs-playground-mobile-reactnative-cli/src/native/native.h diff --git a/cppjs-samples/cppjs-playground-mobile-reactnative-cli/tsconfig.json b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/tsconfig.json new file mode 100644 index 00000000..304ab4e2 --- /dev/null +++ b/cppjs-samples/cppjs-playground-mobile-reactnative-cli/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@react-native/typescript-config/tsconfig.json" +} diff --git a/packages/cppjs-sample-web-react-rspack/.gitignore b/cppjs-samples/cppjs-playground-web-rspack/.gitignore similarity index 100% rename from packages/cppjs-sample-web-react-rspack/.gitignore rename to cppjs-samples/cppjs-playground-web-rspack/.gitignore diff --git a/cppjs-samples/cppjs-playground-web-rspack/cppjs.config.mjs b/cppjs-samples/cppjs-playground-web-rspack/cppjs.config.mjs new file mode 100644 index 00000000..628d2886 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-rspack/cppjs.config.mjs @@ -0,0 +1,47 @@ +import matrix from '@cpp.js/sample-lib-prebuilt-matrix/cppjs.config.js'; +import curl from '@cpp.js/package-curl/cppjs.config.js'; +import expat from '@cpp.js/package-expat/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal/cppjs.config.js'; +import geos from '@cpp.js/package-geos/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl/cppjs.config.js'; +import proj from '@cpp.js/package-proj/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff/cppjs.config.js'; +import webp from '@cpp.js/package-webp/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-playground-web-rspack', + }, + dependencies: [ + matrix, + curl, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + }, + platform: { + 'Emscripten-x86_64': { + binary: { + emccFlags: ['-sJSPI'], + } + }, + } +}; diff --git a/packages/cppjs-sample-web-react-rspack/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-playground-web-rspack/e2e/cppjs.spec.cjs similarity index 100% rename from packages/cppjs-sample-web-react-rspack/e2e/cppjs.spec.cjs rename to cppjs-samples/cppjs-playground-web-rspack/e2e/cppjs.spec.cjs diff --git a/packages/cppjs-sample-web-react-rspack/index.html b/cppjs-samples/cppjs-playground-web-rspack/index.html similarity index 100% rename from packages/cppjs-sample-web-react-rspack/index.html rename to cppjs-samples/cppjs-playground-web-rspack/index.html diff --git a/cppjs-samples/cppjs-playground-web-rspack/package.json b/cppjs-samples/cppjs-playground-web-rspack/package.json new file mode 100644 index 00000000..8218b8ef --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-rspack/package.json @@ -0,0 +1,53 @@ +{ + "name": "@cpp.js/playground-web-rspack", + "version": "1.0.1", + "description": "Cpp.js Rspack Playground", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-playground-web-rspack#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "scripts": { + "dev": "cross-env NODE_ENV=development rspack serve", + "build": "cross-env NODE_ENV=production rspack build", + "preview": "serve dist -c ../serve.json" + }, + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0", + "@cpp.js/plugin-webpack": "workspace:^", + "@cpp.js/plugin-webpack-loader": "workspace:^", + "@cpp.js/sample-lib-prebuilt-matrix": "workspace:^", + "@cpp.js/package-curl": "workspace:^", + "@cpp.js/package-expat": "workspace:^", + "@cpp.js/package-gdal": "workspace:^", + "@cpp.js/package-geos": "workspace:^", + "@cpp.js/package-geotiff": "workspace:^", + "@cpp.js/package-iconv": "workspace:^", + "@cpp.js/package-openssl": "workspace:^", + "@cpp.js/package-proj": "workspace:^", + "@cpp.js/package-spatialite": "workspace:^", + "@cpp.js/package-sqlite3": "workspace:^", + "@cpp.js/package-tiff": "workspace:^", + "@cpp.js/package-webp": "workspace:^", + "@cpp.js/package-zlib": "workspace:^" + }, + "devDependencies": { + "@rspack/plugin-react-refresh": "^1.0.1", + "@rspack/cli": "^1.1.8", + "@rspack/core": "^1.1.8", + "@types/react": "^19.0.2", + "@types/react-dom": "^19.0.2", + "cross-env": "^7.0.3", + "react-refresh": "^0.16.0", + "@playwright/test": "^1.49.1", + "serve": "^14.2.4" + }, + "keywords": [ + "cpp.js-sample", + "webassembly", + "bind", + "c++", + "react", + "rspack", + "webpack" + ] +} \ No newline at end of file diff --git a/packages/cppjs-sample-web-react-rspack/playwright.dev.config.cjs b/cppjs-samples/cppjs-playground-web-rspack/playwright.dev.config.cjs similarity index 100% rename from packages/cppjs-sample-web-react-rspack/playwright.dev.config.cjs rename to cppjs-samples/cppjs-playground-web-rspack/playwright.dev.config.cjs diff --git a/packages/cppjs-sample-web-react-rspack/playwright.prod.config.cjs b/cppjs-samples/cppjs-playground-web-rspack/playwright.prod.config.cjs similarity index 100% rename from packages/cppjs-sample-web-react-rspack/playwright.prod.config.cjs rename to cppjs-samples/cppjs-playground-web-rspack/playwright.prod.config.cjs diff --git a/cppjs-samples/cppjs-playground-web-rspack/rspack.config.mjs b/cppjs-samples/cppjs-playground-web-rspack/rspack.config.mjs new file mode 100644 index 00000000..d9478c29 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-rspack/rspack.config.mjs @@ -0,0 +1,130 @@ +import { dirname } from 'node:path'; +import fs from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { defineConfig } from '@rspack/cli'; +import { rspack } from '@rspack/core'; +import RefreshPlugin from '@rspack/plugin-react-refresh'; +import CppjsWebpackPlugin from '@cpp.js/plugin-webpack'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const isDev = process.env.NODE_ENV === 'development'; + +// Target browsers, see: https://github.com/browserslist/browserslist +const targets = ['chrome >= 87', 'edge >= 88', 'firefox >= 78', 'safari >= 14']; + +const cppjsWebpackPlugin = new CppjsWebpackPlugin(); +const cppjsLoaderOptions = cppjsWebpackPlugin.getLoaderOptions(); +const { state } = cppjsLoaderOptions; + +export default defineConfig({ + context: __dirname, + entry: { + main: './src/main.jsx', + }, + resolve: { + extensions: ['...', '.ts', '.tsx', '.jsx'], + }, + module: { + rules: [ + { + test: /\.h$/, + loader: '@cpp.js/plugin-webpack-loader', + options: { ...cppjsLoaderOptions }, + }, + { + test: /\.svg$/, + type: 'asset', + }, + { + test: /\.(jsx?|tsx?)$/, + use: [ + { + loader: 'builtin:swc-loader', + options: { + jsc: { + parser: { + syntax: 'typescript', + tsx: true, + }, + transform: { + react: { + runtime: 'automatic', + development: isDev, + refresh: isDev, + }, + }, + }, + env: { targets }, + }, + }, + ], + }, + ], + }, + plugins: [ + cppjsWebpackPlugin, + new rspack.HtmlRspackPlugin({ + template: './index.html', + }), + isDev ? new RefreshPlugin() : null, + ].filter(Boolean), + optimization: { + minimizer: [ + new rspack.SwcJsMinimizerRspackPlugin(), + new rspack.LightningCssMinimizerRspackPlugin({ + minimizerOptions: { targets }, + }), + ], + }, + experiments: { + css: true, + }, + devServer: { + watchFiles: { + paths: ['src/**/*'], // İzlemek istediÄŸiniz dosya/dizin + options: { + ignored: /node_modules/, // İstemediÄŸiniz dosyaları hariç tutabilirsiniz + }, + }, + hot: true, // HMR'yi etkinleÅŸtirir + liveReload: true, // Sayfa yenileme + headers: { + 'Cross-Origin-Embedder-Policy': 'require-corp', + 'Cross-Origin-Opener-Policy': 'same-origin', + }, + setupMiddlewares: (middlewares, devServer) => { + if (!devServer) { + throw new Error('@rspack/dev-server is not defined'); + } + + middlewares.unshift({ + name: '/cpp.js', + path: '/cpp.js', + middleware: (req, res) => { + res.setHeader("Content-Type", "application/javascript"); + res.setHeader("Cross-Origin-Embedder-Policy", "require-corp"); + res.setHeader("Cross-Origin-Opener-Policy", "same-origin"); + res.sendFile(`${state.config.paths.build}/${state.config.general.name}.browser.js`); + }, + }); + middlewares.unshift({ + name: '/cpp.wasm', + path: '/cpp.wasm', + middleware: (req, res) => { + res.setHeader("Content-Type", "application/wasm"); + res.send(fs.readFileSync(`${state.config.paths.build}/${state.config.general.name}.wasm`)); + }, + }); + + middlewares.unshift({ + name: '/cpp.data.txt', + path: '/cpp.data.txt', + middleware: (req, res) => { + res.send(fs.readFileSync(`${state.config.paths.build}/${state.config.general.name}.data.txt`)); + }, + }); + + return middlewares; + }, + }, +}); diff --git a/cppjs-samples/cppjs-playground-web-rspack/serve.json b/cppjs-samples/cppjs-playground-web-rspack/serve.json new file mode 100644 index 00000000..129724ad --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-rspack/serve.json @@ -0,0 +1,17 @@ +{ + "headers": [ + { + "source" : "*", + "headers" : [ + { + "key" : "Cross-Origin-Opener-Policy", + "value" : "same-origin" + }, + { + "key" : "Cross-Origin-Embedder-Policy", + "value" : "require-corp" + } + ] + } + ] +} diff --git a/packages/cppjs-sample-web-react-rspack/src/App.css b/cppjs-samples/cppjs-playground-web-rspack/src/App.css similarity index 100% rename from packages/cppjs-sample-web-react-rspack/src/App.css rename to cppjs-samples/cppjs-playground-web-rspack/src/App.css diff --git a/cppjs-samples/cppjs-playground-web-rspack/src/App.jsx b/cppjs-samples/cppjs-playground-web-rspack/src/App.jsx new file mode 100644 index 00000000..b10af969 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-rspack/src/App.jsx @@ -0,0 +1,34 @@ +import React from "react"; +import { useState } from "react"; +import { initCppJs, Native } from './native/native.h'; +import "./App.css"; + +function App() { + const [message, setMessage] = useState("compiling ..."); + const [threadResult, setThreadResult] = useState("..."); + + initCppJs().then(() => { + console.log('zzz'); + Native.runOnThread(); + const y = Native.ops_JSPI(); + console.log('zzz2'); + console.log(y); + y.then(() => { + console.log('aaa'); + setMessage(Native.sample()); + }); + setTimeout(() => { + setThreadResult(Native.getThreadResult()); + // message.value = Native.sample(); + }, 5000); + }); + + return ( +

+ ); +} + +export default App; diff --git a/packages/cppjs-sample-web-react-rspack/src/assets/react.svg b/cppjs-samples/cppjs-playground-web-rspack/src/assets/react.svg similarity index 100% rename from packages/cppjs-sample-web-react-rspack/src/assets/react.svg rename to cppjs-samples/cppjs-playground-web-rspack/src/assets/react.svg diff --git a/packages/cppjs-sample-web-react-rspack/src/index.css b/cppjs-samples/cppjs-playground-web-rspack/src/index.css similarity index 100% rename from packages/cppjs-sample-web-react-rspack/src/index.css rename to cppjs-samples/cppjs-playground-web-rspack/src/index.css diff --git a/packages/cppjs-sample-web-react-rspack/src/main.jsx b/cppjs-samples/cppjs-playground-web-rspack/src/main.jsx similarity index 100% rename from packages/cppjs-sample-web-react-rspack/src/main.jsx rename to cppjs-samples/cppjs-playground-web-rspack/src/main.jsx diff --git a/cppjs-samples/cppjs-playground-web-rspack/src/native b/cppjs-samples/cppjs-playground-web-rspack/src/native new file mode 120000 index 00000000..d7e026f5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-rspack/src/native @@ -0,0 +1 @@ +../../cppjs-playground-config/native \ No newline at end of file diff --git a/packages/cppjs-sample-web-vanilla/.gitignore b/cppjs-samples/cppjs-playground-web-vanilla/.gitignore similarity index 100% rename from packages/cppjs-sample-web-vanilla/.gitignore rename to cppjs-samples/cppjs-playground-web-vanilla/.gitignore diff --git a/packages/cppjs-sample-web-vanilla/CHANGELOG.md b/cppjs-samples/cppjs-playground-web-vanilla/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-web-vanilla/CHANGELOG.md rename to cppjs-samples/cppjs-playground-web-vanilla/CHANGELOG.md diff --git a/packages/cppjs-sample-web-vanilla/README.md b/cppjs-samples/cppjs-playground-web-vanilla/README.md similarity index 100% rename from packages/cppjs-sample-web-vanilla/README.md rename to cppjs-samples/cppjs-playground-web-vanilla/README.md diff --git a/cppjs-samples/cppjs-playground-web-vanilla/cppjs.config.mjs b/cppjs-samples/cppjs-playground-web-vanilla/cppjs.config.mjs new file mode 100644 index 00000000..68cb64e7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vanilla/cppjs.config.mjs @@ -0,0 +1,48 @@ +import matrix from '@cpp.js/sample-lib-prebuilt-matrix/cppjs.config.js'; +import curl from '@cpp.js/package-curl/cppjs.config.js'; +import expat from '@cpp.js/package-expat/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal/cppjs.config.js'; +import geos from '@cpp.js/package-geos/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl/cppjs.config.js'; +import proj from '@cpp.js/package-proj/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff/cppjs.config.js'; +import webp from '@cpp.js/package-webp/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-playground-web-vanilla', + }, + dependencies: [ + matrix, + curl, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + output: 'dist', + }, + platform: { + 'Emscripten-x86_64': { + binary: { + emccFlags: ['-sJSPI'], + } + }, + } +}; diff --git a/packages/cppjs-sample-web-react-vite/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-playground-web-vanilla/e2e/cppjs.spec.cjs similarity index 100% rename from packages/cppjs-sample-web-react-vite/e2e/cppjs.spec.cjs rename to cppjs-samples/cppjs-playground-web-vanilla/e2e/cppjs.spec.cjs diff --git a/cppjs-samples/cppjs-playground-web-vanilla/index.html b/cppjs-samples/cppjs-playground-web-vanilla/index.html new file mode 100644 index 00000000..c03cef40 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vanilla/index.html @@ -0,0 +1,42 @@ + + + + + + Cpp.js Vanilla playground + + + + + +

Matrix multiplier with c++   =>   compiling ...

+

Thread result   :   ...

+ + diff --git a/cppjs-samples/cppjs-playground-web-vanilla/package.json b/cppjs-samples/cppjs-playground-web-vanilla/package.json new file mode 100644 index 00000000..0b54d402 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vanilla/package.json @@ -0,0 +1,40 @@ +{ + "name": "@cpp.js/playground-web-vanilla", + "version": "1.0.1", + "description": "Cpp.js Web Vanilla playground", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-playground-web-vanilla#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "scripts": { + "build": "cppjs build -p WebAssembly", + "preview": "serve -c ./serve.json" + }, + "dependencies": { + "cpp.js": "workspace:^", + "@cpp.js/sample-lib-prebuilt-matrix": "workspace:^", + "@cpp.js/package-curl": "workspace:^", + "@cpp.js/package-expat": "workspace:^", + "@cpp.js/package-gdal": "workspace:^", + "@cpp.js/package-geos": "workspace:^", + "@cpp.js/package-geotiff": "workspace:^", + "@cpp.js/package-iconv": "workspace:^", + "@cpp.js/package-openssl": "workspace:^", + "@cpp.js/package-proj": "workspace:^", + "@cpp.js/package-spatialite": "workspace:^", + "@cpp.js/package-sqlite3": "workspace:^", + "@cpp.js/package-tiff": "workspace:^", + "@cpp.js/package-webp": "workspace:^", + "@cpp.js/package-zlib": "workspace:^" + }, + "devDependencies": { + "serve": "^14.2.4", + "@playwright/test": "^1.49.1" + }, + "keywords": [ + "cpp.js-sample", + "webassembly", + "bind", + "c++", + "vanilla" + ] +} \ No newline at end of file diff --git a/packages/cppjs-sample-web-vanilla/playwright.prod.config.cjs b/cppjs-samples/cppjs-playground-web-vanilla/playwright.prod.config.cjs similarity index 100% rename from packages/cppjs-sample-web-vanilla/playwright.prod.config.cjs rename to cppjs-samples/cppjs-playground-web-vanilla/playwright.prod.config.cjs diff --git a/cppjs-samples/cppjs-playground-web-vanilla/serve.json b/cppjs-samples/cppjs-playground-web-vanilla/serve.json new file mode 100644 index 00000000..e47701f7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vanilla/serve.json @@ -0,0 +1,17 @@ +{ + "headers": [ + { + "source" : "**/**", + "headers" : [ + { + "key" : "Cross-Origin-Opener-Policy", + "value" : "same-origin" + }, + { + "key" : "Cross-Origin-Embedder-Policy", + "value" : "require-corp" + } + ] + } + ] +} diff --git a/cppjs-samples/cppjs-playground-web-vanilla/src/native b/cppjs-samples/cppjs-playground-web-vanilla/src/native new file mode 120000 index 00000000..d7e026f5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vanilla/src/native @@ -0,0 +1 @@ +../../cppjs-playground-config/native \ No newline at end of file diff --git a/packages/cppjs-sample-web-vue-vite/.gitignore b/cppjs-samples/cppjs-playground-web-vite-multithread/.gitignore similarity index 100% rename from packages/cppjs-sample-web-vue-vite/.gitignore rename to cppjs-samples/cppjs-playground-web-vite-multithread/.gitignore diff --git a/cppjs-samples/cppjs-playground-web-vite-multithread/cppjs.config.js b/cppjs-samples/cppjs-playground-web-vite-multithread/cppjs.config.js new file mode 100644 index 00000000..e22c8893 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite-multithread/cppjs.config.js @@ -0,0 +1,48 @@ +import curl from '@cpp.js/package-curl-multithread/cppjs.config.js'; +import expat from '@cpp.js/package-expat-multithread/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal-multithread/cppjs.config.js'; +import geos from '@cpp.js/package-geos-multithread/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff-multithread/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv-multithread/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl-multithread/cppjs.config.js'; +import proj from '@cpp.js/package-proj-multithread/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite-multithread/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3-multithread/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff-multithread/cppjs.config.js'; +import webp from '@cpp.js/package-webp-multithread/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib-multithread/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-playground-web-vite', + }, + dependencies: [ + curl, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + }, + platform: { + 'Emscripten-x86_64': { + binary: { + emccFlags: ['-sJSPI'], + } + }, + }, + build: { + usePthread: true + } +}; diff --git a/packages/cppjs-sample-web-svelte-vite/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-playground-web-vite-multithread/e2e/cppjs.spec.cjs similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/e2e/cppjs.spec.cjs rename to cppjs-samples/cppjs-playground-web-vite-multithread/e2e/cppjs.spec.cjs diff --git a/packages/cppjs-sample-web-vue-vite/index.html b/cppjs-samples/cppjs-playground-web-vite-multithread/index.html similarity index 100% rename from packages/cppjs-sample-web-vue-vite/index.html rename to cppjs-samples/cppjs-playground-web-vite-multithread/index.html diff --git a/cppjs-samples/cppjs-playground-web-vite-multithread/package.json b/cppjs-samples/cppjs-playground-web-vite-multithread/package.json new file mode 100644 index 00000000..512a859f --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite-multithread/package.json @@ -0,0 +1,45 @@ +{ + "name": "@cpp.js/playground-web-vite-multithread", + "version": "1.0.1", + "description": "Cpp.js Vite Playground", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-playground-web-vite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "serve": "serve dist -c ../serve.json" + }, + "dependencies": { + "vue": "^3.5.13", + "@cpp.js/plugin-vite": "workspace:^", + "@cpp.js/package-curl-multithread": "workspace:^", + "@cpp.js/package-expat-multithread": "workspace:^", + "@cpp.js/package-gdal-multithread": "workspace:^", + "@cpp.js/package-geos-multithread": "workspace:^", + "@cpp.js/package-geotiff-multithread": "workspace:^", + "@cpp.js/package-iconv-multithread": "workspace:^", + "@cpp.js/package-openssl-multithread": "workspace:^", + "@cpp.js/package-proj-multithread": "workspace:^", + "@cpp.js/package-spatialite-multithread": "workspace:^", + "@cpp.js/package-sqlite3-multithread": "workspace:^", + "@cpp.js/package-tiff-multithread": "workspace:^", + "@cpp.js/package-webp-multithread": "workspace:^", + "@cpp.js/package-zlib-multithread": "workspace:^" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "vite": "^6.0.5", + "@playwright/test": "^1.49.1" + }, + "keywords": [ + "cpp.js-sample", + "webassembly", + "bind", + "c++", + "vue", + "vite" + ] +} \ No newline at end of file diff --git a/packages/cppjs-sample-web-react-vite/playwright.dev.config.cjs b/cppjs-samples/cppjs-playground-web-vite-multithread/playwright.dev.config.cjs similarity index 100% rename from packages/cppjs-sample-web-react-vite/playwright.dev.config.cjs rename to cppjs-samples/cppjs-playground-web-vite-multithread/playwright.dev.config.cjs diff --git a/packages/cppjs-sample-web-react-vite/playwright.prod.config.cjs b/cppjs-samples/cppjs-playground-web-vite-multithread/playwright.prod.config.cjs similarity index 100% rename from packages/cppjs-sample-web-react-vite/playwright.prod.config.cjs rename to cppjs-samples/cppjs-playground-web-vite-multithread/playwright.prod.config.cjs diff --git a/packages/cppjs-sample-web-react-vite/public/vite.svg b/cppjs-samples/cppjs-playground-web-vite-multithread/public/vite.svg similarity index 100% rename from packages/cppjs-sample-web-react-vite/public/vite.svg rename to cppjs-samples/cppjs-playground-web-vite-multithread/public/vite.svg diff --git a/cppjs-samples/cppjs-playground-web-vite-multithread/serve.json b/cppjs-samples/cppjs-playground-web-vite-multithread/serve.json new file mode 100644 index 00000000..129724ad --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite-multithread/serve.json @@ -0,0 +1,17 @@ +{ + "headers": [ + { + "source" : "*", + "headers" : [ + { + "key" : "Cross-Origin-Opener-Policy", + "value" : "same-origin" + }, + { + "key" : "Cross-Origin-Embedder-Policy", + "value" : "require-corp" + } + ] + } + ] +} diff --git a/cppjs-samples/cppjs-playground-web-vite-multithread/src/App.vue b/cppjs-samples/cppjs-playground-web-vite-multithread/src/App.vue new file mode 100644 index 00000000..eb07f43e --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite-multithread/src/App.vue @@ -0,0 +1,27 @@ + + + diff --git a/packages/cppjs-sample-web-vue-vite/src/main.js b/cppjs-samples/cppjs-playground-web-vite-multithread/src/main.js similarity index 100% rename from packages/cppjs-sample-web-vue-vite/src/main.js rename to cppjs-samples/cppjs-playground-web-vite-multithread/src/main.js diff --git a/cppjs-samples/cppjs-playground-web-vite-multithread/src/native b/cppjs-samples/cppjs-playground-web-vite-multithread/src/native new file mode 120000 index 00000000..d7e026f5 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite-multithread/src/native @@ -0,0 +1 @@ +../../cppjs-playground-config/native \ No newline at end of file diff --git a/packages/cppjs-sample-web-vue-vite/src/style.css b/cppjs-samples/cppjs-playground-web-vite-multithread/src/style.css similarity index 100% rename from packages/cppjs-sample-web-vue-vite/src/style.css rename to cppjs-samples/cppjs-playground-web-vite-multithread/src/style.css diff --git a/packages/cppjs-sample-web-vue-vite/vite.config.js b/cppjs-samples/cppjs-playground-web-vite-multithread/vite.config.js similarity index 100% rename from packages/cppjs-sample-web-vue-vite/vite.config.js rename to cppjs-samples/cppjs-playground-web-vite-multithread/vite.config.js diff --git a/cppjs-samples/cppjs-playground-web-vite/.gitignore b/cppjs-samples/cppjs-playground-web-vite/.gitignore new file mode 100644 index 00000000..02d7f513 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/.gitignore @@ -0,0 +1,29 @@ +# cpp.js +.cppjs +test-results +playwright-report + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/cppjs-samples/cppjs-playground-web-vite/cppjs.config.js b/cppjs-samples/cppjs-playground-web-vite/cppjs.config.js new file mode 100644 index 00000000..dfa48b48 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/cppjs.config.js @@ -0,0 +1,45 @@ +import matrix from '@cpp.js/sample-lib-prebuilt-matrix/cppjs.config.js'; +import expat from '@cpp.js/package-expat/cppjs.config.js'; +import gdal from '@cpp.js/package-gdal/cppjs.config.js'; +import geos from '@cpp.js/package-geos/cppjs.config.js'; +import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; +import iconv from '@cpp.js/package-iconv/cppjs.config.js'; +import openssl from '@cpp.js/package-openssl/cppjs.config.js'; +import proj from '@cpp.js/package-proj/cppjs.config.js'; +import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; +import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; +import tiff from '@cpp.js/package-tiff/cppjs.config.js'; +import webp from '@cpp.js/package-webp/cppjs.config.js'; +import zlib from '@cpp.js/package-zlib/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-playground-web-vite', + }, + dependencies: [ + matrix, + expat, + gdal, + geos, + geotiff, + iconv, + openssl, + proj, + spatialite, + sqlite3, + tiff, + webp, + zlib, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + }, + platform: { + 'Emscripten-x86_64': { + binary: { + emccFlags: ['-sJSPI'], + } + }, + } +}; diff --git a/packages/cppjs-sample-web-vanilla/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-playground-web-vite/e2e/cppjs.spec.cjs similarity index 100% rename from packages/cppjs-sample-web-vanilla/e2e/cppjs.spec.cjs rename to cppjs-samples/cppjs-playground-web-vite/e2e/cppjs.spec.cjs diff --git a/cppjs-samples/cppjs-playground-web-vite/index.html b/cppjs-samples/cppjs-playground-web-vite/index.html new file mode 100644 index 00000000..282d98b7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/index.html @@ -0,0 +1,13 @@ + + + + + + + Cpp.js + Vite + Vue 3 + + +
+ + + diff --git a/cppjs-samples/cppjs-playground-web-vite/package.json b/cppjs-samples/cppjs-playground-web-vite/package.json new file mode 100644 index 00000000..ff8e994d --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/package.json @@ -0,0 +1,45 @@ +{ + "name": "@cpp.js/playground-web-vite", + "version": "1.0.1", + "description": "Cpp.js Vite Playground", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-playground-web-vite#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "serve": "serve dist -c ../serve.json" + }, + "dependencies": { + "vue": "^3.5.13", + "@cpp.js/plugin-vite": "workspace:^", + "@cpp.js/sample-lib-prebuilt-matrix": "workspace:^", + "@cpp.js/package-expat": "workspace:^", + "@cpp.js/package-gdal": "workspace:^", + "@cpp.js/package-geos": "workspace:^", + "@cpp.js/package-geotiff": "workspace:^", + "@cpp.js/package-iconv": "workspace:^", + "@cpp.js/package-openssl": "workspace:^", + "@cpp.js/package-proj": "workspace:^", + "@cpp.js/package-spatialite": "workspace:^", + "@cpp.js/package-sqlite3": "workspace:^", + "@cpp.js/package-tiff": "workspace:^", + "@cpp.js/package-webp": "workspace:^", + "@cpp.js/package-zlib": "workspace:^" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "vite": "^6.0.5", + "@playwright/test": "^1.49.1" + }, + "keywords": [ + "cpp.js-sample", + "webassembly", + "bind", + "c++", + "vue", + "vite" + ] +} \ No newline at end of file diff --git a/packages/cppjs-sample-web-svelte-vite/playwright.dev.config.cjs b/cppjs-samples/cppjs-playground-web-vite/playwright.dev.config.cjs similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/playwright.dev.config.cjs rename to cppjs-samples/cppjs-playground-web-vite/playwright.dev.config.cjs diff --git a/packages/cppjs-sample-web-svelte-vite/playwright.prod.config.cjs b/cppjs-samples/cppjs-playground-web-vite/playwright.prod.config.cjs similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/playwright.prod.config.cjs rename to cppjs-samples/cppjs-playground-web-vite/playwright.prod.config.cjs diff --git a/packages/cppjs-sample-web-svelte-vite/public/vite.svg b/cppjs-samples/cppjs-playground-web-vite/public/vite.svg similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/public/vite.svg rename to cppjs-samples/cppjs-playground-web-vite/public/vite.svg diff --git a/cppjs-samples/cppjs-playground-web-vite/serve.json b/cppjs-samples/cppjs-playground-web-vite/serve.json new file mode 100644 index 00000000..129724ad --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/serve.json @@ -0,0 +1,17 @@ +{ + "headers": [ + { + "source" : "*", + "headers" : [ + { + "key" : "Cross-Origin-Opener-Policy", + "value" : "same-origin" + }, + { + "key" : "Cross-Origin-Embedder-Policy", + "value" : "require-corp" + } + ] + } + ] +} diff --git a/cppjs-samples/cppjs-playground-web-vite/src/App.vue b/cppjs-samples/cppjs-playground-web-vite/src/App.vue new file mode 100644 index 00000000..048ac098 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/src/App.vue @@ -0,0 +1,14 @@ + + + diff --git a/cppjs-samples/cppjs-playground-web-vite/src/main.js b/cppjs-samples/cppjs-playground-web-vite/src/main.js new file mode 100644 index 00000000..2425c0f7 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/src/main.js @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import './style.css' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/cppjs-samples/cppjs-playground-web-vite/src/native/native.cpp b/cppjs-samples/cppjs-playground-web-vite/src/native/native.cpp new file mode 100644 index 00000000..ebc62c81 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/src/native/native.cpp @@ -0,0 +1,3 @@ +#include "native.h" + +std::string Native::sample() { return "hello"; } diff --git a/cppjs-samples/cppjs-playground-web-vite/src/native/native.h b/cppjs-samples/cppjs-playground-web-vite/src/native/native.h new file mode 100644 index 00000000..f9902779 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/src/native/native.h @@ -0,0 +1,12 @@ +#ifndef _NATIVE_H +#define _NATIVE_H + +#include +#include + +class Native { +public: + static std::string sample(); +}; + +#endif diff --git a/cppjs-samples/cppjs-playground-web-vite/src/style.css b/cppjs-samples/cppjs-playground-web-vite/src/style.css new file mode 100644 index 00000000..0ce4430f --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/src/style.css @@ -0,0 +1,38 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } +} diff --git a/cppjs-samples/cppjs-playground-web-vite/vite.config.js b/cppjs-samples/cppjs-playground-web-vite/vite.config.js new file mode 100644 index 00000000..db71ac71 --- /dev/null +++ b/cppjs-samples/cppjs-playground-web-vite/vite.config.js @@ -0,0 +1,18 @@ +import { fileURLToPath, URL } from 'node:url'; + +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import viteCppjsPlugin from '@cpp.js/plugin-vite'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + viteCppjsPlugin(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, +}); diff --git a/packages/cppjs-sample-backend-nodejs-wasm/.npmignore b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/.npmignore similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/.npmignore rename to cppjs-samples/cppjs-sample-backend-nodejs-wasm/.npmignore diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm/CHANGELOG.md b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/CHANGELOG.md new file mode 100644 index 00000000..cc4fd8ee --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/CHANGELOG.md @@ -0,0 +1,27 @@ +# @cpp.js/sample-backend-nodejs-wasm + +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - cpp.js@1.0.4 + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release + +### Patch Changes + +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0 + +## 1.0.0-beta.14 + +### Patch Changes + +- chore: add initial version of CHANGELOGS files +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0-beta.32 diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm/README.md b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/README.md new file mode 100644 index 00000000..3e6b15c6 --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/README.md @@ -0,0 +1,32 @@ +# @cpp.js/sample-backend-nodejs-wasm +**Cpp.js Node.js webassembly sample** + +
+ NPM version + + + License + + + Docs - Node.js + + +# Getting Started + +>**Note**: Make sure you have completed the [Cpp.js - Prerequisites](https://cpp.js.org/docs/guide/getting-started/prerequisites) instructions. + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get Started + +Build native code to webassembly: + +```bash +pnpm run build +``` diff --git a/packages/cppjs-sample-backend-nodejs-wasm/cppjs.config.mjs b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/cppjs.config.mjs similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/cppjs.config.mjs rename to cppjs-samples/cppjs-sample-backend-nodejs-wasm/cppjs.config.mjs diff --git a/packages/cppjs-sample-backend-nodejs-wasm/package.json b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/package.json similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/package.json rename to cppjs-samples/cppjs-sample-backend-nodejs-wasm/package.json diff --git a/packages/cppjs-sample-backend-nodejs-wasm/src/index.js b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/index.js similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/src/index.js rename to cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/index.js diff --git a/packages/cppjs-sample-backend-nodejs-wasm/src/index.mjs b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/index.mjs similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/src/index.mjs rename to cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/index.mjs diff --git a/packages/cppjs-sample-backend-nodejs-wasm/src/native/native.cpp b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/native/native.cpp similarity index 100% rename from packages/cppjs-sample-backend-nodejs-wasm/src/native/native.cpp rename to cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/native/native.cpp diff --git a/packages/cppjs-sample-mobile-reactnative-expo/src/native/native.h b/cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/native/native.h similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/src/native/native.h rename to cppjs-samples/cppjs-sample-backend-nodejs-wasm/src/native/native.h diff --git a/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/.gitignore b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/.gitignore new file mode 100644 index 00000000..fa40c911 --- /dev/null +++ b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/.gitignore @@ -0,0 +1,3 @@ +.cppjs +test-results +playwright-report diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/CHANGELOG.md b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/CHANGELOG.md rename to cppjs-samples/cppjs-sample-cloud-cloudflare-worker/CHANGELOG.md diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/Readme.md b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/Readme.md similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/Readme.md rename to cppjs-samples/cppjs-sample-cloud-cloudflare-worker/Readme.md diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/cppjs.config.mjs b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/cppjs.config.mjs similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/cppjs.config.mjs rename to cppjs-samples/cppjs-sample-cloud-cloudflare-worker/cppjs.config.mjs diff --git a/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/e2e/cppjs.spec.cjs new file mode 100644 index 00000000..592366fe --- /dev/null +++ b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/e2e/cppjs.spec.cjs @@ -0,0 +1,7 @@ +// @ts-check +const { test, expect } = require('@playwright/test'); + +test('check string receiving from c++', async ({ page }) => { + await page.goto('/') + await expect(page.getByText('Hello World, greetings from c++.')).toBeVisible() +}); diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/index.js b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/index.js similarity index 89% rename from packages/cppjs-sample-cloud-cloudflare-worker/index.js rename to cppjs-samples/cppjs-sample-cloud-cloudflare-worker/index.js index 88cccee7..631f1fa2 100644 --- a/packages/cppjs-sample-cloud-cloudflare-worker/index.js +++ b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/index.js @@ -1,6 +1,7 @@ import initCppJs from './dist/cppjs-sample-cloud-cloudflare-worker.browser.js'; import wasmContent from './dist/cppjs-sample-cloud-cloudflare-worker.wasm'; +globalThis.WorkerGlobalScope = undefined; const { Native } = await initCppJs({ getWasmFunction: () => wasmContent }); export default { diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/package.json b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/package.json similarity index 97% rename from packages/cppjs-sample-cloud-cloudflare-worker/package.json rename to cppjs-samples/cppjs-sample-cloud-cloudflare-worker/package.json index d8bb9c9f..b22187fd 100644 --- a/packages/cppjs-sample-cloud-cloudflare-worker/package.json +++ b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/package.json @@ -24,7 +24,7 @@ "cpp.js": "workspace:^" }, "devDependencies": { - "wrangler": "^3.99.0", + "wrangler": "^3.107.3", "@playwright/test": "^1.49.1" }, "keywords": [ diff --git a/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/playwright.dev.config.cjs b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/playwright.dev.config.cjs new file mode 100644 index 00000000..f1bd039c --- /dev/null +++ b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/playwright.dev.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:8787', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run dev', + url: 'http://localhost:8787', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/src/native/native.cpp b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/src/native/native.cpp similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/src/native/native.cpp rename to cppjs-samples/cppjs-sample-cloud-cloudflare-worker/src/native/native.cpp diff --git a/packages/cppjs-sample-cloud-cloudflare-worker/src/native/native.h b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/src/native/native.h similarity index 100% rename from packages/cppjs-sample-cloud-cloudflare-worker/src/native/native.h rename to cppjs-samples/cppjs-sample-cloud-cloudflare-worker/src/native/native.h diff --git a/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/wrangler.toml b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/wrangler.toml new file mode 100644 index 00000000..8777a6df --- /dev/null +++ b/cppjs-samples/cppjs-sample-cloud-cloudflare-worker/wrangler.toml @@ -0,0 +1,3 @@ +name = "cppjs" +main = "index.js" +compatibility_date = "2024-09-08" diff --git a/packages/cppjs-sample-lib-cmake/.gitignore b/cppjs-samples/cppjs-sample-lib-cmake/.gitignore similarity index 100% rename from packages/cppjs-sample-lib-cmake/.gitignore rename to cppjs-samples/cppjs-sample-lib-cmake/.gitignore diff --git a/packages/cppjs-sample-lib-cmake/CHANGELOG.md b/cppjs-samples/cppjs-sample-lib-cmake/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-lib-cmake/CHANGELOG.md rename to cppjs-samples/cppjs-sample-lib-cmake/CHANGELOG.md diff --git a/packages/cppjs-sample-lib-cmake/CMakeLists.txt b/cppjs-samples/cppjs-sample-lib-cmake/CMakeLists.txt similarity index 100% rename from packages/cppjs-sample-lib-cmake/CMakeLists.txt rename to cppjs-samples/cppjs-sample-lib-cmake/CMakeLists.txt diff --git a/packages/cppjs-sample-lib-cmake/README.md b/cppjs-samples/cppjs-sample-lib-cmake/README.md similarity index 100% rename from packages/cppjs-sample-lib-cmake/README.md rename to cppjs-samples/cppjs-sample-lib-cmake/README.md diff --git a/packages/cppjs-sample-lib-cmake/cppjs.config.js b/cppjs-samples/cppjs-sample-lib-cmake/cppjs.config.js similarity index 100% rename from packages/cppjs-sample-lib-cmake/cppjs.config.js rename to cppjs-samples/cppjs-sample-lib-cmake/cppjs.config.js diff --git a/packages/cppjs-sample-lib-cmake/package.json b/cppjs-samples/cppjs-sample-lib-cmake/package.json similarity index 100% rename from packages/cppjs-sample-lib-cmake/package.json rename to cppjs-samples/cppjs-sample-lib-cmake/package.json diff --git a/packages/cppjs-sample-lib-cmake/src/native/cppjs-lib-samplebasic-cmake/samplebasiccmake.h b/cppjs-samples/cppjs-sample-lib-cmake/src/native/cppjs-lib-samplebasic-cmake/samplebasiccmake.h similarity index 100% rename from packages/cppjs-sample-lib-cmake/src/native/cppjs-lib-samplebasic-cmake/samplebasiccmake.h rename to cppjs-samples/cppjs-sample-lib-cmake/src/native/cppjs-lib-samplebasic-cmake/samplebasiccmake.h diff --git a/packages/cppjs-sample-lib-cmake/src/native/samplebasiccmake.cpp b/cppjs-samples/cppjs-sample-lib-cmake/src/native/samplebasiccmake.cpp similarity index 100% rename from packages/cppjs-sample-lib-cmake/src/native/samplebasiccmake.cpp rename to cppjs-samples/cppjs-sample-lib-cmake/src/native/samplebasiccmake.cpp diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/.npmignore b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/CHANGELOG.md b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/CHANGELOG.md rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/CHANGELOG.md diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/README.md b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/README.md new file mode 100644 index 00000000..f8df9986 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/README.md @@ -0,0 +1,81 @@ +# @cpp.js/sample-lib-prebuilt-matrix-multithread +**Simple matrix multiplier** + + + NPM version + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/sample-lib-prebuilt-matrix-multithread +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import matrix from '@cpp.js/sample-lib-prebuilt-matrix-multithread/cppjs.config.js'; + +export default { + dependencies: [ ++ matrix + ] + paths: { + config: import.meta.url, + }, +}; +``` + +## Usage +Below are the steps to use the Simple Matrix Multiplier in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ auto firstMatrix = std::make_shared(9, 1); ++ auto secondMatrix = std::make_shared(9, 2); ++ auto resultStr = std::to_string(firstMatrix->multiple(secondMatrix)->get(0)); ++ return "J₃ * (2*J₃) = " + resultStr + "*J₃"; +} + +``` + +### Usage in JavaScript Code (web, with plugin) +```js +import { initCppJs, Matrix } from '@cpp.js/sample-lib-prebuilt-matrix-multithread/Matrix.h'; + +await initCppJs(); +const a = new Matrix(1210000, 1); +const b = new Matrix(1210000, 2); +const result = a.multiple(b); +console.log(result.get(0)); +``` + +### Usage in JavaScript Code (web, without plugin) +```js +import 'node_modules/@cpp.js/sample-lib-prebuilt-matrix-multithread/dist/cppjs-sample-lib-prebuilt-matrix-multithread.browser.js'; + +initCppJs({ path: 'node_modules/@cpp.js/sample-lib-prebuilt-matrix-multithread/dist' }).then(({ Matrix }) => { + const a = new Matrix(1210000, 1); + const b = new Matrix(1210000, 2); + const result = a.multiple(b); + console.log(result.get(0)); +}); +``` + +### Usage in JavaScript Code (node.js) +```js +import 'node_modules/@cpp.js/sample-lib-prebuilt-matrix-multithread/dist/cppjs-sample-lib-prebuilt-matrix-multithread.node.js'; + +initCppJs().then(({ Matrix }) => { + const a = new Matrix(1210000, 1); + const b = new Matrix(1210000, 2); + const result = a.multiple(b); + console.log(result.get(0)); +}); +``` diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/cppjs-sample-lib-prebuilt-matrix-multithread.podspec b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/cppjs-sample-lib-prebuilt-matrix-multithread.podspec new file mode 100644 index 00000000..af1e94b5 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/cppjs-sample-lib-prebuilt-matrix-multithread.podspec @@ -0,0 +1,15 @@ +require "json" +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.module_name = "MatrixMultiplier" + s.name = "cppjs-sample-lib-prebuilt-matrix-multithread" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.author = "Cpp.js Authors" + s.source = { :http => "https://cpp.js.org" } + + s.vendored_frameworks = 'cppjs-sample-lib-prebuilt-matrix-multithread.xcframework' +end diff --git a/packages/cppjs-package-iconv/cppjs.config.js b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/cppjs.config.js similarity index 50% rename from packages/cppjs-package-iconv/cppjs.config.js rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/cppjs.config.js index c8201e60..0fed6b3f 100644 --- a/packages/cppjs-package-iconv/cppjs.config.js +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/cppjs.config.js @@ -1,18 +1,16 @@ export default { general: { - name: 'iconv', + name: 'cppjs-sample-lib-prebuilt-matrix-multithread', + }, + build: { + usePthread: true }, export: { type: 'cmake', - libName: ['iconv', 'charset'], }, paths: { config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ output: 'dist', }, - platform: { - 'Emscripten-x86_64': { - ignoreLibName: ['charset'], - }, - }, }; diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/package.json b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/package.json new file mode 100644 index 00000000..0a4a762a --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/package.json @@ -0,0 +1,27 @@ +{ + "name": "@cpp.js/sample-lib-prebuilt-matrix-multithread", + "version": "1.0.0", + "description": "Cpp.js sample prebuilt library: matrix multiplier", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-lib-prebuilt-matrix-multithread#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "type": "module", + "scripts": { + "build": "cppjs build", + "build:wasm": "cppjs build -p WebAssembly", + "build:android": "cppjs build -p Android", + "build:ios": "cppjs build -p iOS", + "clear": "rm -rf .cppjs dist *.xcframework", + "prepublishOnly": "cppjs build" + }, + "devDependencies": { + "cpp.js": "workspace:^" + }, + "keywords": [ + "cpp.js-sample", + "matrix", + "multithread", + "webassembly", + "react-native" + ] +} \ No newline at end of file diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/playground/Matrix.js b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/playground/Matrix.js similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/playground/Matrix.js rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/playground/Matrix.js diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/playground/index.html b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/playground/index.html similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/playground/index.html rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/playground/index.html diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.cpp b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/src/native/Matrix.cpp similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.cpp rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/src/native/Matrix.cpp diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.h b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/src/native/Matrix.h similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.h rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread/src/native/Matrix.h diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/.npmignore b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/.npmignore new file mode 100644 index 00000000..6bc1f649 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/.npmignore @@ -0,0 +1,7 @@ +*.xcframework.zip +*.tgz +.cppjs +*.dylib +dist/prebuilt/Android-arm64-v8a/lib/*.a +dist/prebuilt/Android-x86_64/lib/*.a +dist/prebuilt/**/bin diff --git a/packages/cppjs-package-zlib/CHANGELOG.md b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/CHANGELOG.md similarity index 70% rename from packages/cppjs-package-zlib/CHANGELOG.md rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix/CHANGELOG.md index 5122933a..1a9fffcc 100644 --- a/packages/cppjs-package-zlib/CHANGELOG.md +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/CHANGELOG.md @@ -1,4 +1,4 @@ -# @cpp.js/package-zlib +# @cpp.js/sample-lib-prebuilt-matrix ## 1.0.0 @@ -6,7 +6,7 @@ - 🚀 first stable release -## 1.0.0-beta.29 +## 1.0.0-beta.32 ### Patch Changes diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/README.md b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/README.md similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/README.md rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix/README.md diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/cppjs-sample-lib-prebuilt-matrix.podspec b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/cppjs-sample-lib-prebuilt-matrix.podspec similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/cppjs-sample-lib-prebuilt-matrix.podspec rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix/cppjs-sample-lib-prebuilt-matrix.podspec diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/cppjs.config.js b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/cppjs.config.js similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/cppjs.config.js rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix/cppjs.config.js diff --git a/packages/cppjs-sample-lib-prebuilt-matrix/package.json b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/package.json similarity index 100% rename from packages/cppjs-sample-lib-prebuilt-matrix/package.json rename to cppjs-samples/cppjs-sample-lib-prebuilt-matrix/package.json diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/Matrix.js b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/Matrix.js new file mode 100644 index 00000000..5e14bcef --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/Matrix.js @@ -0,0 +1,19 @@ +class Matrix extends Array { + constructor(size, initValue) { super(size); this.fill(initValue); } + + get(i) { return this[i]; } + + multiple(otherMatrix) { + const size = Math.sqrt(this.length); + const result = new Matrix(this.length, 0); + + for (let i = 0; i < size; i += 1) { + for (let j = 0; j < size; j += 1) { + for (let k = 0; k < size; k += 1) { + result[i * size + j] += this[i * size + k] * otherMatrix[k * size + j]; + } + } + } + return result; + } +} diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/index.html b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/index.html new file mode 100644 index 00000000..4088de58 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/playground/index.html @@ -0,0 +1,74 @@ + + + + + + C++ Matrix Multiplier + + + + + +
Loading ...
+
+
+ + +
+ + + + +
Typeresult[0]Duration (s)
JS
WASM
+
+ + diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.cpp b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.cpp new file mode 100644 index 00000000..0e048678 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.cpp @@ -0,0 +1,17 @@ +#include "Matrix.h" + +int Matrix::get(int i) { return this->at(i); } + +std::shared_ptr Matrix::multiple(std::shared_ptr b) { + int size = sqrt(this->size()); + auto result = std::make_shared(this->size(), 0); + + for (int i = 0; i < size; i += 1) { + for (int j = 0; j < size; j += 1) { + for (int k = 0; k < size; k += 1) { + (*result)[i * size + j] += this->at(i * size + k) * (*b)[k * size + j]; + } + } + } + return result; +} diff --git a/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.h b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.h new file mode 100644 index 00000000..ef5474f3 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-prebuilt-matrix/src/native/Matrix.h @@ -0,0 +1,12 @@ +#pragma once + +#include +#include +#include + +class Matrix : public std::vector { +public: + Matrix(int size, int initValue) : std::vector(size, initValue) {} + int get(int i); + std::shared_ptr multiple(std::shared_ptr b); +}; diff --git a/packages/cppjs-sample-lib-source/.gitignore b/cppjs-samples/cppjs-sample-lib-source/.gitignore similarity index 100% rename from packages/cppjs-sample-lib-source/.gitignore rename to cppjs-samples/cppjs-sample-lib-source/.gitignore diff --git a/packages/cppjs-sample-lib-source/CHANGELOG.md b/cppjs-samples/cppjs-sample-lib-source/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-lib-source/CHANGELOG.md rename to cppjs-samples/cppjs-sample-lib-source/CHANGELOG.md diff --git a/packages/cppjs-sample-lib-source/README.md b/cppjs-samples/cppjs-sample-lib-source/README.md similarity index 100% rename from packages/cppjs-sample-lib-source/README.md rename to cppjs-samples/cppjs-sample-lib-source/README.md diff --git a/packages/cppjs-sample-lib-source/cppjs.config.js b/cppjs-samples/cppjs-sample-lib-source/cppjs.config.js similarity index 100% rename from packages/cppjs-sample-lib-source/cppjs.config.js rename to cppjs-samples/cppjs-sample-lib-source/cppjs.config.js diff --git a/packages/cppjs-sample-lib-source/package.json b/cppjs-samples/cppjs-sample-lib-source/package.json similarity index 100% rename from packages/cppjs-sample-lib-source/package.json rename to cppjs-samples/cppjs-sample-lib-source/package.json diff --git a/packages/cppjs-sample-lib-source/src/native/cppjs-lib-samplebasic/samplebasic.h b/cppjs-samples/cppjs-sample-lib-source/src/native/cppjs-lib-samplebasic/samplebasic.h similarity index 100% rename from packages/cppjs-sample-lib-source/src/native/cppjs-lib-samplebasic/samplebasic.h rename to cppjs-samples/cppjs-sample-lib-source/src/native/cppjs-lib-samplebasic/samplebasic.h diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.bundle/config b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.bundle/config new file mode 100644 index 00000000..848943bb --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.bundle/config @@ -0,0 +1,2 @@ +BUNDLE_PATH: "vendor/bundle" +BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.eslintrc.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.eslintrc.js new file mode 100644 index 00000000..187894b6 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: '@react-native', +}; diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.gitignore b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.gitignore new file mode 100644 index 00000000..6d4750c8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.gitignore @@ -0,0 +1,85 @@ +.cppjs +.yarn +ios/build +android/build +android/app/build +android/app/.cxx + +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +**/.xcode.env.local + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof +.cxx/ +*.keystore +!debug.keystore +android/app/build + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output + +# Bundle artifact +*.jsbundle + +# Ruby / CocoaPods +**/Pods/ +/vendor/bundle/ + +# Temporary files created by Metro to check the health of the file watcher +.metro-health-check* + +# testing +/coverage + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +!ci/.cppjs +!ci/.cppjs/build diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.prettierrc.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.prettierrc.js new file mode 100644 index 00000000..2b540746 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.prettierrc.js @@ -0,0 +1,7 @@ +module.exports = { + arrowParens: 'avoid', + bracketSameLine: true, + bracketSpacing: false, + singleQuote: true, + trailingComma: 'all', +}; diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/CHANGELOG.md b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/CHANGELOG.md new file mode 100644 index 00000000..2e3c315c --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/CHANGELOG.md @@ -0,0 +1,29 @@ +# @cpp.js/sample-mobile-reactnative-cli + +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @cpp.js/core-embind-jsi@1.0.3 + - @cpp.js/plugin-metro@1.0.2 + - @cpp.js/plugin-react-native@1.0.2 + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release + +### Patch Changes + +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0 + +## 1.0.0-beta.4 + +### Patch Changes + +- chore: add initial version of CHANGELOGS files +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0-beta.32 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/Gemfile b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/Gemfile new file mode 100644 index 00000000..85d7f682 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/Gemfile @@ -0,0 +1,9 @@ +source 'https://rubygems.org' + +# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version +ruby ">= 2.6.10" + +# Exclude problematic versions of cocoapods and activesupport that causes build failures. +gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' +gem 'xcodeproj', '< 1.26.0' diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/README.md b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/README.md new file mode 100644 index 00000000..578fb775 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/README.md @@ -0,0 +1,55 @@ +# @cpp.js/sample-mobile-reactnative-cli +**Cpp.js React Native sample** + + + NPM version + + + License + + + Docs - React Native + + +# Getting Started + +>**Note**: Make sure you have completed the [Cpp.js - Prerequisites](https://cpp.js.org/docs/guide/getting-started/prerequisites) instructions. + +## Step 1: Install dependencies + +```bash +npm install +cd ios +pod install +cd .. +``` + +## Step 2: Start the Metro Server + +First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native. + +To start Metro, run the following command from the _root_ of your React Native project: + +```bash +npm start +``` + +## Step 3: Start your Application + +Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app: + +### For Android + +```bash +npm run android +``` + +### For iOS + +```bash +npm run ios +``` + +If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly. + +This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively. diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/__tests__/App.test.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/__tests__/App.test.tsx new file mode 100644 index 00000000..9eac6fbc --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/__tests__/App.test.tsx @@ -0,0 +1,17 @@ +/** + * @format + */ + +import 'react-native'; +import React from 'react'; +import App from '../App'; + +// Note: import explicitly to use the types shipped with jest. +import {it} from '@jest/globals'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + renderer.create(); +}); diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/build.gradle new file mode 100644 index 00000000..e1736095 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/build.gradle @@ -0,0 +1,119 @@ +apply plugin: "com.android.application" +apply plugin: "org.jetbrains.kotlin.android" +apply plugin: "com.facebook.react" + +/** + * This is the configuration block to customize your React Native Android app. + * By default you don't need to apply any configuration, just uncomment the lines you need. + */ +react { + /* Folders */ + // The root of your project, i.e. where "package.json" lives. Default is '../..' + // root = file("../../") + // The folder where the react-native NPM package is. Default is ../../node_modules/react-native + // reactNativeDir = file("../../node_modules/react-native") + // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen + // codegenDir = file("../../node_modules/@react-native/codegen") + // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js + // cliFile = file("../../node_modules/react-native/cli.js") + + /* Variants */ + // The list of variants to that are debuggable. For those we're going to + // skip the bundling of the JS bundle and the assets. By default is just 'debug'. + // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. + // debuggableVariants = ["liteDebug", "prodDebug"] + + /* Bundling */ + // A list containing the node command and its flags. Default is just 'node'. + // nodeExecutableAndArgs = ["node"] + // + // The command to run when bundling. By default is 'bundle' + // bundleCommand = "ram-bundle" + // + // The path to the CLI configuration file. Default is empty. + // bundleConfig = file(../rn-cli.config.js) + // + // The name of the generated asset file containing your JS bundle + // bundleAssetName = "MyApplication.android.bundle" + // + // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' + // entryFile = file("../js/MyApplication.android.js") + // + // A list of extra flags to pass to the 'bundle' commands. + // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle + // extraPackagerArgs = [] + + /* Hermes Commands */ + // The hermes compiler command to run. By default it is 'hermesc' + // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" + // + // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" + // hermesFlags = ["-O", "-output-source-map"] + + /* Autolinking */ + autolinkLibrariesWithApp() +} + +/** + * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + */ +def enableProguardInReleaseBuilds = false + +/** + * The preferred build flavor of JavaScriptCore (JSC) + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'org.webkit:android-jsc:+' + +android { + ndkVersion rootProject.ext.ndkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + compileSdk rootProject.ext.compileSdkVersion + + namespace "org.js.cpp.cppjsSampleReactNativeCLI" + defaultConfig { + applicationId "org.js.cpp.cppjsSampleReactNativeCLI" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + buildTypes { + debug { + signingConfig signingConfigs.debug + } + release { + // Caution! In production, you need to generate your own keystore file. + // see https://reactnative.dev/docs/signed-apk-android. + signingConfig signingConfigs.debug + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } +} + +dependencies { + // The version of react-native is set by the React Native Gradle Plugin + implementation("com.facebook.react:react-android") + + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/debug.keystore b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..364e105ed39fbfd62001429a68140672b06ec0de GIT binary patch literal 2257 zcmchYXEfYt8;7T1^dLH$VOTZ%2NOdOH5j5LYLtZ0q7x-V8_6gU5)#7dkq{HTmsfNq zB3ZqcAxeY^G10@?efK?Q&)M(qInVv!xjx+IKEL}p*K@LYvIzo#AZG>st5|P)KF1_Z;y){W{<7K{nl!CPuE z_^(!C(Ol0n8 zK13*rzAtW>(wULKPRYLd7G18F8#1P`V*9`(Poj26eOXYyBVZPno~Cvvhx7vPjAuZo zF?VD!zB~QG(!zbw#qsxT8%BSpqMZ4f70ZPn-3y$L8{EVbbN9$H`B&Z1quk9tgp5FM zuxp3pJ0b8u|3+#5bkJ4SRnCF2l7#DyLYXYY8*?OuAwK4E6J{0N=O3QNVzQ$L#FKkR zi-c@&!nDvezOV$i$Lr}iF$XEcwnybQ6WZrMKuw8gCL^U#D;q3t&HpTbqyD%vG=TeDlzCT~MXUPC|Leb-Uk+ z=vnMd(|>ld?Fh>V8poP;q;;nc@en$|rnP0ytzD&fFkCeUE^kG9Kx4wUh!!rpjwKDP zyw_e|a^x_w3E zP}}@$g>*LLJ4i0`Gx)qltL}@;mDv}D*xR^oeWcWdPkW@Uu)B^X&4W1$p6}ze!zudJ zyiLg@uggoMIArBr*27EZV7djDg@W1MaL+rcZ-lrANJQ%%>u8)ZMWU@R2qtnmG(acP z0d_^!t>}5W zpT`*2NR+0+SpTHb+6Js4b;%LJB;B_-ChhnU5py}iJtku*hm5F0!iql8Hrpcy1aYbT z1*dKC5ua6pMX@@iONI?Hpr%h;&YaXp9n!ND7-=a%BD7v&g zOO41M6EbE24mJ#S$Ui0-brR5ML%@|ndz^)YLMMV1atna{Fw<;TF@>d&F|!Z>8eg>>hkFrV)W+uv=`^F9^e zzzM2*oOjT9%gLoub%(R57p-`TXFe#oh1_{&N-YN z<}artH|m=d8TQuKSWE)Z%puU|g|^^NFwC#N=@dPhasyYjoy(fdEVfKR@cXKHZV-`06HsP`|Ftx;8(YD$fFXumLWbGnu$GMqRncXYY9mwz9$ap zQtfZB^_BeNYITh^hA7+(XNFox5WMeG_LtJ%*Q}$8VKDI_p8^pqX)}NMb`0e|wgF7D zuQACY_Ua<1ri{;Jwt@_1sW9zzdgnyh_O#8y+C;LcZq6=4e^cs6KvmK@$vVpKFGbQ= z$)Eux5C|Fx;Gtmv9^#Y-g@7Rt7*eLp5n!gJmn7&B_L$G?NCN`AP>cXQEz}%F%K;vUs{+l4Q{}eWW;ATe2 zqvXzxoIDy(u;F2q1JH7Sf;{jy_j})F+cKlIOmNfjBGHoG^CN zM|Ho&&X|L-36f}Q-obEACz`sI%2f&k>z5c$2TyTSj~vmO)BW~+N^kt`Jt@R|s!){H ze1_eCrlNaPkJQhL$WG&iRvF*YG=gXd1IyYQ9ew|iYn7r~g!wOnw;@n42>enAxBv*A zEmV*N#sxdicyNM=A4|yaOC5MByts}s_Hpfj|y<6G=o=!3S@eIFKDdpR7|FY>L&Wat&oW&cm&X~ z5Bt>Fcq(fgnvlvLSYg&o6>&fY`ODg4`V^lWWD=%oJ#Kbad2u~! zLECFS*??>|vDsNR&pH=Ze0Eo`sC_G`OjoEKVHY|wmwlX&(XBE<@sx3Hd^gtd-fNwUHsylg06p`U2y_={u}Bc + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..e1892528 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem new file mode 100644 index 00000000..a9c3d44c --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/assets/cppjs/certs/cacert.pem @@ -0,0 +1,3480 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Jul 15 03:12:01 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## 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://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/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.29. +## SHA256: 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9 +## + + +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----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- + +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----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----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----- + +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----- + +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----- + +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----- + +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----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +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 - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----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----- + +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----- + +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----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +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----- + +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----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +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+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt new file mode 100644 index 00000000..f183139a --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt @@ -0,0 +1,22 @@ +package org.js.cpp.cppjsSampleReactNativeCLI + +import com.facebook.react.ReactActivity +import com.facebook.react.ReactActivityDelegate +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled +import com.facebook.react.defaults.DefaultReactActivityDelegate + +class MainActivity : ReactActivity() { + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + override fun getMainComponentName(): String = "cppjsSampleReactNativeCLI" + + /** + * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] + * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] + */ + override fun createReactActivityDelegate(): ReactActivityDelegate = + DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt new file mode 100644 index 00000000..45c3e4d5 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt @@ -0,0 +1,44 @@ +package org.js.cpp.cppjsSampleReactNativeCLI + +import android.app.Application +import com.facebook.react.PackageList +import com.facebook.react.ReactApplication +import com.facebook.react.ReactHost +import com.facebook.react.ReactNativeHost +import com.facebook.react.ReactPackage +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost +import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping +import com.facebook.soloader.SoLoader + +class MainApplication : Application(), ReactApplication { + + override val reactNativeHost: ReactNativeHost = + object : DefaultReactNativeHost(this) { + override fun getPackages(): List = + PackageList(this).packages.apply { + // Packages that cannot be autolinked yet can be added manually here, for example: + // add(MyReactNativePackage()) + } + + override fun getJSMainModuleName(): String = "index" + + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG + + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED + } + + override val reactHost: ReactHost + get() = getDefaultReactHost(applicationContext, reactNativeHost) + + override fun onCreate() { + super.onCreate() + SoLoader.init(this, OpenSourceMergedSoMapping) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml new file mode 100644 index 00000000..5c25e728 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f5908281d070150700378b64a84c7db1f97aa1 GIT binary patch literal 3056 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 axPAxe%7rDusX+w*00006jj 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⁣ zwiG+x#%j}{0gU~J8;<|!B1@-XaB@{KORFwrYg_8rOv({b0EO#DbeQRm;B6_9=mXGf z-x|VL{zd`)#@yN}HkCSJbjbNlE|zL3Wm9Q8HY`sV)}3%pgN>cL^67{Z;PPL(*wT8N zUjXU{@|*hvm}({wsAC=x0^ok0%UAz0;sogW{B!nDqk|JJ5x~4NfTDgP49^zeu`csl?5mY@JdQdISc zFs!E{^grmkLnUk9 zny~m)1vws@5BFI<-0Tuo2JWX(0v`W|t(wg;s--L47WTvTMz-8l#TL^=OJNRS2?_Qj z3AKT+gvbyBi#H*-tJ%tWD|>EV3wy|8qxfzS!5RW;Jpl5*zo&^UBU=fG#2}UvRyNkK zA06Dy9;K1ca@r2T>yThYgI!ont$(G{6q#2QT+00r_x0(b)gsE`lBB?2gr55gq^D3Fi&p%E(p9>U%bv zkg1Jco(RbyTX7FDHOnl7-O@ zI$AaIl?9NJKPm(WiBP`1-#CB1QzU>&hKm)fpa5DKE{2$X0hGz-0uZ?cyTk(YC!Y&| zL=1VrNERSA5NA2jq7FACfX4JfPyj5XXl1yv0>~s;eF7L2$>&oMqeTFT2m$y7FlkON z_yurD1yIOvA;5C6016pyxBznGUt0kJ&k5r#;&>Jow`r)sp9R~PmK~lz$3xH%LT*1U zJdOyABZ3!FvNoR*vN$5ykHS8f`jA4zV+|L}i1C4`B2c{R0;UdYxaU|H)2avz@ z=mEYc|2S<+(B2Tj+FkX+2D+yFI!k9lWMA61DJ{)e;lum$(;O87?vGJJe!KtK04+N_ zI*P~t@dUb>9Xh{dbyl{-ZQ(UMgz7$|QfL5XSPkskt^NgctYC#;4WcZB1@%@wy@2t3 z2z0DI7&%b$*Aw~abe?GxE`ez@+6hOh-6*8fHRV{1os$EL@}uUZeG4h1&Be`98q*7j z=3-v+lhIjfWVo12!<>%V^a6lTgW3+_#W6n|p*~==zOH7z$0{LSZk(Tpd7EaD04hnA zL;#fxS0aD{`5^&D`}>0Uq?byDD-l2=!wm_bLcUl4gc(% za1p|itVANvFF>hghAS07Im1;IK;|b*W)}VDyI;BIp2=K*yu2a)j?B|f<44NI$NbmJ z#dE0>jI$fMr&@>4kN8MLFb4&2O9fEKaQg%(QO$4_1rVQywG^CmBLh#}_7gKW3vd?| z2?1^&KWq8}8I^_S0|)MowU_pw$q@nl@Nkn$z>BQq_KA^9yaR`(R3u{{Ig;cwt z@AJ^{ODQCm^neroM9nKNUAXi9RCK`OsP_LuR0PUR(YZCCX5dNF6VzcoK&=b^r`W?ltt|*F zpkoae%ZT{C1h~EcFui~b7fF`vb<<~j_VquuUA$}QqIKYELPp#;{u?q8Dz}WAG-(3; zjrm$i%7UbyZMM(Y{>!uJ#vNB?R~B{6Htp=>e*<{fQQ5W7V(1coCWlOON!MzZxhum| ztZBQpGR z;~#ur^&PockKdV{Q6R>o`Pl{0x!DEbpZ7y9Y;*ZvE!*gU`V1W3znva{f=?WO5I&>B z&hw6}tjECtaghm5z|C#%M;Yf_*pI^};h}Vl=^r9EN=tVDj86D;C$jIJ?K7VP+00000NkvXXu0mjf D5i!M* literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..459ca609d3ae0d3943ab44cdc27feef9256dc6d7 GIT binary patch literal 7098 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca12fe024be86e868d14e91120a6902f8e88ac6 GIT binary patch literal 6464 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 B0*L?s literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..8e19b410a1b15ff180f3dacac19395fe3046cdec GIT binary patch literal 10676 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..4c19a13c239cb67b8a2134ddd5f325db1d2d5bee GIT binary patch literal 15523 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 BIP(Ai literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..1d042898 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + cppjsSampleReactNativeCLI + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..7ba83a2a --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/app/src/main/res/values/styles.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/build.gradle new file mode 100644 index 00000000..a9ea0236 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/build.gradle @@ -0,0 +1,21 @@ +buildscript { + ext { + buildToolsVersion = "35.0.0" + minSdkVersion = 24 + compileSdkVersion = 35 + targetSdkVersion = 34 + ndkVersion = "26.1.10909125" + kotlinVersion = "1.9.24" + } + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle") + classpath("com.facebook.react:react-native-gradle-plugin") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") + } +} + +apply plugin: "com.facebook.react.rootproject" diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle.properties b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle.properties new file mode 100644 index 00000000..22f57878 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle.properties @@ -0,0 +1,39 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true + +# Use this property to specify which architecture you want to build. +# You can also override it from the CLI using +# ./gradlew -PreactNativeArchitectures=x86_64 +reactNativeArchitectures=arm64-v8a,x86,x86_64 + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=false + +# Use this property to enable or disable the Hermes JS engine. +# If set to false, you will be using JSC instead. +hermesEnabled=true diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..79eb9d00 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew new file mode 100755 index 00000000..f5feea6d --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew.bat b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew.bat new file mode 100644 index 00000000..9b42019c --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/settings.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/settings.gradle new file mode 100644 index 00000000..4b6310e6 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/android/settings.gradle @@ -0,0 +1,6 @@ +pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } +plugins { id("com.facebook.react.settings") } +extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } +rootProject.name = 'cppjsSampleReactNativeCLI' +include ':app' +includeBuild('../node_modules/@react-native/gradle-plugin') diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/app.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/app.json new file mode 100644 index 00000000..85cf02ae --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/app.json @@ -0,0 +1,4 @@ +{ + "name": "cppjsSampleReactNativeCLI", + "displayName": "cppjsSampleReactNativeCLI" +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/babel.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/babel.config.js new file mode 100644 index 00000000..f7b3da3b --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:@react-native/babel-preset'], +}; diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp new file mode 100644 index 00000000..4fee74ec --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp @@ -0,0 +1,224 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (https://www.swig.org). + * Version 4.2.1 + * + * Do not make changes to this file unless you know what you are doing - modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +#if __cplusplus >=201103L +# define SWIG_NULLPTR nullptr +#else +# define SWIG_NULLPTR NULL +#endif + +/* ----------------------------------------------------------------------------- + * swigcompat.swg + * + * Macros to provide support compatibility with older C and C++ standards. + * ----------------------------------------------------------------------------- */ + +/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF + * if you're missing it. + */ +#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \ + (defined __cplusplus && __cplusplus >= 201103L) || \ + defined SWIG_HAVE_SNPRINTF) && \ + !defined SWIG_NO_SNPRINTF +# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A) +# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B) +#else +/* Fallback versions ignore the buffer size, but most of our uses either have a + * fixed maximum possible size or dynamically allocate a buffer that's large + * enough. + */ +# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A) +# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B) +#endif + +#include + +#ifdef __cplusplus +#include +/* SwigValueWrapper is described in swig.swg */ +template class SwigValueWrapper { + struct SwigSmartPointer { + T *ptr; + SwigSmartPointer(T *p) : ptr(p) { } + ~SwigSmartPointer() { delete ptr; } + SwigSmartPointer& operator=(SwigSmartPointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } + void reset(T *p) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = p; } + } pointer; + SwigValueWrapper& operator=(const SwigValueWrapper& rhs); + SwigValueWrapper(const SwigValueWrapper& rhs); +public: + SwigValueWrapper() : pointer(0) { } + SwigValueWrapper& operator=(const T& t) { SwigSmartPointer tmp(new T(t)); pointer = tmp; return *this; } +#if __cplusplus >=201103L + SwigValueWrapper& operator=(T&& t) { SwigSmartPointer tmp(new T(std::move(t))); pointer = tmp; return *this; } + operator T&&() const { return std::move(*pointer.ptr); } +#else + operator T&() const { return *pointer.ptr; } +#endif + T *operator&() const { return pointer.ptr; } + static void reset(SwigValueWrapper& t, T *p) { t.pointer.reset(p); } +}; + +/* + * SwigValueInit() is a generic initialisation solution as the following approach: + * + * T c_result = T(); + * + * doesn't compile for all types for example: + * + * unsigned int c_result = unsigned int(); + */ +template T SwigValueInit() { + return T(); +} + +#if __cplusplus >=201103L +# define SWIG_STD_MOVE(OBJ) std::move(OBJ) +#else +# define SWIG_STD_MOVE(OBJ) OBJ +#endif + +#endif + + +#include "native.h" + +EMSCRIPTEN_BINDINGS(Native) { + emscripten::class_("Native") + .smart_ptr>("Native") + .class_function("sample", &Native::sample) + .smart_ptr_constructor("Native", &std::make_shared) + ; +} + +EMSCRIPTEN_BINDINGS(Functions_NATIVE) { + emscripten::register_vector>("VectorNative"); +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json new file mode 100644 index 00000000..285ac4a1 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/bridge/native.i.cpp.exports.json @@ -0,0 +1 @@ +["VectorNative", "Native"] diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i new file mode 100644 index 00000000..96459933 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/build/interface/native.i @@ -0,0 +1,15 @@ +#ifndef _NATIVE_I +#define _NATIVE_I + +%module NATIVE + +%{ +#include "native.h" +%} + +%feature("shared_ptr"); +%feature("polymorphic_shared_ptr"); + +%include "native.h" + +#endif diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json new file mode 100644 index 00000000..27fc00d8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json @@ -0,0 +1,12 @@ +{ + "hashes": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.h": "d105082c6e8c8652ea461e161c501e824b6b625f7b819490102c5c0699744249", + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i": "eab7d231467438ee3e5f5af1c3ae64919c0514393461653981fb40f26b5edad3" + }, + "interfaces": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.h": "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i" + }, + "bridges": { + "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i": "/Users/runner/work/cpp.js/cpp.js/cppjs-samples/cppjs-sample-mobile-reactnative-cli/.cppjs/build/bridge/native.i.cpp" + } +} \ No newline at end of file diff --git a/packages/cppjs-sample-mobile-reactnative-cli/cppjs.config.mjs b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/cppjs.config.mjs similarity index 86% rename from packages/cppjs-sample-mobile-reactnative-cli/cppjs.config.mjs rename to cppjs-samples/cppjs-sample-mobile-reactnative-cli/cppjs.config.mjs index c2e0a9f1..d64cc28d 100644 --- a/packages/cppjs-sample-mobile-reactnative-cli/cppjs.config.mjs +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/cppjs.config.mjs @@ -2,10 +2,10 @@ import Matrix from '@cpp.js/sample-lib-prebuilt-matrix/cppjs.config.js'; export default { dependencies: [ - Matrix, + Matrix ], - paths: { + paths: { config: import.meta.url, base: '../..', /* Delete this line for create-cpp.js */ - } + } } diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/index.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/index.js new file mode 100644 index 00000000..69303b34 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/index.js @@ -0,0 +1,9 @@ +/** + * @format + */ + +import {AppRegistry} from 'react-native'; +import App from './src/App'; +import {name as appName} from './app.json'; + +AppRegistry.registerComponent(appName, () => App); diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/.xcode.env b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/.xcode.env new file mode 100644 index 00000000..3d5782c7 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/Podfile b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/Podfile new file mode 100644 index 00000000..2973470e --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/Podfile @@ -0,0 +1,40 @@ +# Resolve react_native_pods.rb with node to allow for hoisting +require Pod::Executable.execute_command('node', ['-p', + 'require.resolve( + "react-native/scripts/react_native_pods.rb", + {paths: [process.argv[1]]}, + )', __dir__]).strip + +platform :ios, min_ios_version_supported +prepare_react_native_project! + +linkage = ENV['USE_FRAMEWORKS'] +if linkage != nil + Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green + use_frameworks! :linkage => linkage.to_sym +end + +target 'cppjsSampleReactNativeCLI' do + config = use_native_modules! + + use_react_native!( + :path => config[:reactNativePath], + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." + ) + + target 'cppjsSampleReactNativeCLITests' do + inherit! :complete + # Pods for testing + end + + post_install do |installer| + # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 + react_native_post_install( + installer, + config[:reactNativePath], + :mac_catalyst_enabled => false, + # :ccache_enabled => true + ) + end +end diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ios/Podfile.lock b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/Podfile.lock similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/ios/Podfile.lock rename to cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/Podfile.lock diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj new file mode 100644 index 00000000..696ede33 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 00E356F31AD99517003FC87E /* cppjsSampleReactNativeCLITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* cppjsSampleReactNativeCLITests.m */; }; + 0C80B921A6F3F58F76C31292 /* libPods-cppjsSampleReactNativeCLI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-cppjsSampleReactNativeCLI.a */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 296156FC570FABDD95D8FC2C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; }; + 7699B88040F8A987B510C191 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a */; }; + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = cppjsSampleReactNativeCLI; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00E356EE1AD99517003FC87E /* cppjsSampleReactNativeCLITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = cppjsSampleReactNativeCLITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* cppjsSampleReactNativeCLITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = cppjsSampleReactNativeCLITests.m; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* cppjsSampleReactNativeCLI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = cppjsSampleReactNativeCLI.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = cppjsSampleReactNativeCLI/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = cppjsSampleReactNativeCLI/AppDelegate.mm; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = cppjsSampleReactNativeCLI/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = cppjsSampleReactNativeCLI/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = cppjsSampleReactNativeCLI/main.m; sourceTree = ""; }; + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B4392A12AC88292D35C810B /* Pods-cppjsSampleReactNativeCLI.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI.debug.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI.debug.xcconfig"; sourceTree = ""; }; + 5709B34CF0A7D63546082F79 /* Pods-cppjsSampleReactNativeCLI.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI.release.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI.release.xcconfig"; sourceTree = ""; }; + 5B7EB9410499542E8C5724F5 /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig"; sourceTree = ""; }; + 5DCACB8F33CDC322A6C60F78 /* libPods-cppjsSampleReactNativeCLI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cppjsSampleReactNativeCLI.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = cppjsSampleReactNativeCLI/LaunchScreen.storyboard; sourceTree = ""; }; + 89C6BE57DB24E9ADA2F236DE /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig"; path = "Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig"; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00E356EB1AD99517003FC87E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7699B88040F8A987B510C191 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0C80B921A6F3F58F76C31292 /* libPods-cppjsSampleReactNativeCLI.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00E356EF1AD99517003FC87E /* cppjsSampleReactNativeCLITests */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* cppjsSampleReactNativeCLITests.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = cppjsSampleReactNativeCLITests; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* cppjsSampleReactNativeCLI */ = { + isa = PBXGroup; + children = ( + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, + 13B07FB71A68108700A75B9A /* main.m */, + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, + ); + name = cppjsSampleReactNativeCLI; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + 5DCACB8F33CDC322A6C60F78 /* libPods-cppjsSampleReactNativeCLI.a */, + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* cppjsSampleReactNativeCLI */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* cppjsSampleReactNativeCLITests */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + BBD78D7AC51CEA395F1C20DB /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* cppjsSampleReactNativeCLI.app */, + 00E356EE1AD99517003FC87E /* cppjsSampleReactNativeCLITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + BBD78D7AC51CEA395F1C20DB /* Pods */ = { + isa = PBXGroup; + children = ( + 3B4392A12AC88292D35C810B /* Pods-cppjsSampleReactNativeCLI.debug.xcconfig */, + 5709B34CF0A7D63546082F79 /* Pods-cppjsSampleReactNativeCLI.release.xcconfig */, + 5B7EB9410499542E8C5724F5 /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig */, + 89C6BE57DB24E9ADA2F236DE /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 00E356ED1AD99517003FC87E /* cppjsSampleReactNativeCLITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLITests" */; + buildPhases = ( + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, + 00E356EA1AD99517003FC87E /* Sources */, + 00E356EB1AD99517003FC87E /* Frameworks */, + 00E356EC1AD99517003FC87E /* Resources */, + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 00E356F51AD99517003FC87E /* PBXTargetDependency */, + ); + name = cppjsSampleReactNativeCLITests; + productName = cppjsSampleReactNativeCLITests; + productReference = 00E356EE1AD99517003FC87E /* cppjsSampleReactNativeCLITests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 13B07F861A680F5B00A75B9A /* cppjsSampleReactNativeCLI */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLI" */; + buildPhases = ( + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = cppjsSampleReactNativeCLI; + productName = cppjsSampleReactNativeCLI; + productReference = 13B07F961A680F5B00A75B9A /* cppjsSampleReactNativeCLI.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1210; + TargetAttributes = { + 00E356ED1AD99517003FC87E = { + CreatedOnToolsVersion = 6.2; + TestTargetID = 13B07F861A680F5B00A75B9A; + }; + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1120; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "cppjsSampleReactNativeCLI" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* cppjsSampleReactNativeCLI */, + 00E356ED1AD99517003FC87E /* cppjsSampleReactNativeCLITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 00E356EC1AD99517003FC87E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 296156FC570FABDD95D8FC2C /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-cppjsSampleReactNativeCLI-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI/Pods-cppjsSampleReactNativeCLI-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests/Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 00E356EA1AD99517003FC87E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00E356F31AD99517003FC87E /* cppjsSampleReactNativeCLITests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 13B07F861A680F5B00A75B9A /* cppjsSampleReactNativeCLI */; + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 00E356F61AD99517003FC87E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = cppjsSampleReactNativeCLITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/cppjsSampleReactNativeCLI.app/cppjsSampleReactNativeCLI"; + }; + name = Debug; + }; + 00E356F71AD99517003FC87E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-cppjsSampleReactNativeCLI-cppjsSampleReactNativeCLITests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = cppjsSampleReactNativeCLITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/cppjsSampleReactNativeCLI.app/cppjsSampleReactNativeCLI"; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-cppjsSampleReactNativeCLI.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = cppjsSampleReactNativeCLI/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = cppjsSampleReactNativeCLI; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-cppjsSampleReactNativeCLI.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = cppjsSampleReactNativeCLI/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.js.cpp.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = cppjsSampleReactNativeCLI; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + "-DFOLLY_CFG_NO_COROUTINES=1", + "-DFOLLY_HAVE_CLOCK_GETTIME=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + USE_HERMES = true; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + "-DFOLLY_CFG_NO_COROUTINES=1", + "-DFOLLY_HAVE_CLOCK_GETTIME=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + USE_HERMES = true; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00E356F61AD99517003FC87E /* Debug */, + 00E356F71AD99517003FC87E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "cppjsSampleReactNativeCLI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "cppjsSampleReactNativeCLI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme new file mode 100644 index 00000000..e88cf906 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..ec53ec93 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h new file mode 100644 index 00000000..5d280825 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : RCTAppDelegate + +@end diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm new file mode 100644 index 00000000..54d44b92 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/AppDelegate.mm @@ -0,0 +1,31 @@ +#import "AppDelegate.h" + +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + self.moduleName = @"cppjsSampleReactNativeCLI"; + // You can add your custom initial props in the dictionary below. + // They will be passed down to the ViewController used by React Native. + self.initialProps = @{}; + + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ + return [self bundleURL]; +} + +- (NSURL *)bundleURL +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +@end diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..81213230 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,53 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json new file mode 100644 index 00000000..2d92bd53 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist new file mode 100644 index 00000000..415a2922 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/Info.plist @@ -0,0 +1,52 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + cppjsSampleReactNativeCLI + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSRequiresIPhoneOS + + NSAppTransportSecurity + + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + NSLocationWhenInUseUsageDescription + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard new file mode 100644 index 00000000..88b1fc62 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy new file mode 100644 index 00000000..41b8317f --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy @@ -0,0 +1,37 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m new file mode 100644 index 00000000..d645c724 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLI/main.m @@ -0,0 +1,10 @@ +#import + +#import "AppDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist new file mode 100644 index 00000000..ba72822e --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m new file mode 100644 index 00000000..3539b7ee --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m @@ -0,0 +1,66 @@ +#import +#import + +#import +#import + +#define TIMEOUT_SECONDS 600 +#define TEXT_TO_LOOK_FOR @"Welcome to React" + +@interface cppjsSampleReactNativeCLITests : XCTestCase + +@end + +@implementation cppjsSampleReactNativeCLITests + +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test +{ + if (test(view)) { + return YES; + } + for (UIView *subview in [view subviews]) { + if ([self findSubviewInView:subview matching:test]) { + return YES; + } + } + return NO; +} + +- (void)testRendersWelcomeScreen +{ + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; + BOOL foundElement = NO; + + __block NSString *redboxError = nil; +#ifdef DEBUG + RCTSetLogFunction( + ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + if (level >= RCTLogLevelError) { + redboxError = message; + } + }); +#endif + + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + + foundElement = [self findSubviewInView:vc.view + matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; + } + +#ifdef DEBUG + RCTSetLogFunction(RCTDefaultLogFunction); +#endif + + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); +} + +@end diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/jest.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/jest.config.js new file mode 100644 index 00000000..8eb675e9 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/jest.config.js @@ -0,0 +1,3 @@ +module.exports = { + preset: 'react-native', +}; diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/maestro.yaml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/maestro.yaml new file mode 100644 index 00000000..7fea8147 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/maestro.yaml @@ -0,0 +1,4 @@ +appId: org.js.cpp.cppjsSampleReactNativeCLI +--- +- launchApp +- assertVisible: 'Matrix multiplier with c++.*=>.*J₃ \* \(2\*J₃\) = 6\*J₃' diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/metro.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/metro.config.js new file mode 100644 index 00000000..21030053 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/metro.config.js @@ -0,0 +1,18 @@ +const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); +const CppjsMetroPlugin = require('@cpp.js/plugin-metro'); + +const defaultConfig = getDefaultConfig(__dirname); + +/** + * Metro configuration + * https://reactnative.dev/docs/metro + * + * @type {import('metro-config').MetroConfig} + */ +const config = { + ...CppjsMetroPlugin(defaultConfig), + resetCache: true, + watchFolders: [ require('path').resolve('../../') ], /* Delete this line for create-cpp.js */ +}; + +module.exports = mergeConfig(defaultConfig, config); diff --git a/packages/cppjs-sample-mobile-reactnative-cli/package.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/package.json similarity index 99% rename from packages/cppjs-sample-mobile-reactnative-cli/package.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-cli/package.json index 2bbd5228..7fe317ff 100644 --- a/packages/cppjs-sample-mobile-reactnative-cli/package.json +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/package.json @@ -59,4 +59,4 @@ "ios", "mobile" ] -} +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/App.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/App.tsx new file mode 100644 index 00000000..2cdfe1b6 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/App.tsx @@ -0,0 +1,45 @@ +/** + * Sample React Native App + * https://github.com/facebook/react-native + * + * @format + */ + +import React, { useState, useEffect } from 'react'; +import { SafeAreaView, Text, StyleSheet, View} from 'react-native'; + +import { initCppJs, Native } from './native/native.h'; + +function App(): React.JSX.Element { + const [message, setMessage] = useState('compiling ...'); + + useEffect(() => { + initCppJs().then(() => { + setMessage(Native.sample()); + }); + }, []); + + return ( + + + Matrix multiplier with c++   =>   {message} + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#242424' + }, + text: { + color: '#FFFFFF', + fontWeight: 'bold', + fontSize: 30, + }, + }); + +export default App; diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.cpp b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.cpp new file mode 100644 index 00000000..7cae0883 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.cpp @@ -0,0 +1,9 @@ +#include "native.h" +#include + +std::string Native::sample() { + auto firstMatrix = std::make_shared(9, 1); + auto secondMatrix = std::make_shared(9, 2); + auto resultStr = std::to_string(firstMatrix->multiple(secondMatrix)->get(0)); + return "J₃ * (2*J₃) = " + resultStr + "*J₃"; +} diff --git a/packages/cppjs-sample-web-react-rspack/src/native/native.h b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.h similarity index 100% rename from packages/cppjs-sample-web-react-rspack/src/native/native.h rename to cppjs-samples/cppjs-sample-mobile-reactnative-cli/src/native/native.h diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli/tsconfig.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/tsconfig.json new file mode 100644 index 00000000..304ab4e2 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@react-native/typescript-config/tsconfig.json" +} diff --git a/packages/cppjs-sample-mobile-reactnative-expo/.gitignore b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/.gitignore similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/.gitignore rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/.gitignore diff --git a/packages/cppjs-sample-mobile-reactnative-expo/README.md b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/README.md similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/README.md rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/README.md diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/.gitignore b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/.gitignore similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/.gitignore rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/.gitignore diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/build.gradle similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/build.gradle rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/build.gradle diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/debug.keystore b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..364e105ed39fbfd62001429a68140672b06ec0de GIT binary patch literal 2257 zcmchYXEfYt8;7T1^dLH$VOTZ%2NOdOH5j5LYLtZ0q7x-V8_6gU5)#7dkq{HTmsfNq zB3ZqcAxeY^G10@?efK?Q&)M(qInVv!xjx+IKEL}p*K@LYvIzo#AZG>st5|P)KF1_Z;y){W{<7K{nl!CPuE z_^(!C(Ol0n8 zK13*rzAtW>(wULKPRYLd7G18F8#1P`V*9`(Poj26eOXYyBVZPno~Cvvhx7vPjAuZo zF?VD!zB~QG(!zbw#qsxT8%BSpqMZ4f70ZPn-3y$L8{EVbbN9$H`B&Z1quk9tgp5FM zuxp3pJ0b8u|3+#5bkJ4SRnCF2l7#DyLYXYY8*?OuAwK4E6J{0N=O3QNVzQ$L#FKkR zi-c@&!nDvezOV$i$Lr}iF$XEcwnybQ6WZrMKuw8gCL^U#D;q3t&HpTbqyD%vG=TeDlzCT~MXUPC|Leb-Uk+ z=vnMd(|>ld?Fh>V8poP;q;;nc@en$|rnP0ytzD&fFkCeUE^kG9Kx4wUh!!rpjwKDP zyw_e|a^x_w3E zP}}@$g>*LLJ4i0`Gx)qltL}@;mDv}D*xR^oeWcWdPkW@Uu)B^X&4W1$p6}ze!zudJ zyiLg@uggoMIArBr*27EZV7djDg@W1MaL+rcZ-lrANJQ%%>u8)ZMWU@R2qtnmG(acP z0d_^!t>}5W zpT`*2NR+0+SpTHb+6Js4b;%LJB;B_-ChhnU5py}iJtku*hm5F0!iql8Hrpcy1aYbT z1*dKC5ua6pMX@@iONI?Hpr%h;&YaXp9n!ND7-=a%BD7v&g zOO41M6EbE24mJ#S$Ui0-brR5ML%@|ndz^)YLMMV1atna{Fw<;TF@>d&F|!Z>8eg>>hkFrV)W+uv=`^F9^e zzzM2*oOjT9%gLoub%(R57p-`TXFe#oh1_{&N-YN z<}artH|m=d8TQuKSWE)Z%puU|g|^^NFwC#N=@dPhasyYjoy(fdEVfKR@cXKHZV-`06HsP`|Ftx;8(YD$fFXumLWbGnu$GMqRncXYY9mwz9$ap zQtfZB^_BeNYITh^hA7+(XNFox5WMeG_LtJ%*Q}$8VKDI_p8^pqX)}NMb`0e|wgF7D zuQACY_Ua<1ri{;Jwt@_1sW9zzdgnyh_O#8y+C;LcZq6=4e^cs6KvmK@$vVpKFGbQ= z$)Eux5C|Fx;Gtmv9^#Y-g@7Rt7*eLp5n!gJmn7&B_L$G?NCN`AP>cXQEz}%F%K;vUs{+l4Q{}eWW;ATe2 zqvXzxoIDy(u;F2q1JH7Sf;{jy_j})F+cKlIOmNfjBGHoG^CN zM|Ho&&X|L-36f}Q-obEACz`sI%2f&k>z5c$2TyTSj~vmO)BW~+N^kt`Jt@R|s!){H ze1_eCrlNaPkJQhL$WG&iRvF*YG=gXd1IyYQ9ew|iYn7r~g!wOnw;@n42>enAxBv*A zEmV*N#sxdicyNM=A4|yaOC5MByts}s_Hpfj|y<6G=o=!3S@eIFKDdpR7|FY>L&Wat&oW&cm&X~ z5Bt>Fcq(fgnvlvLSYg&o6>&fY`ODg4`V^lWWD=%oJ#Kbad2u~! zLECFS*??>|vDsNR&pH=Ze0Eo`sC_G`OjoEKVHY|wmwlX&(XBE<@sx3Hd^gtd-fNwUHsylg06p`U2y_={u}Bc + + + + + + + + + + diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/splashscreen.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/splashscreen.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/splashscreen.xml rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/drawable/splashscreen.xml diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values-night/colors.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values-night/colors.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values-night/colors.xml rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values-night/colors.xml diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/colors.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/colors.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/colors.xml rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/colors.xml diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/strings.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/strings.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/strings.xml rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/strings.xml diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/styles.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/styles.xml similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/styles.xml rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/app/src/main/res/values/styles.xml diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/build.gradle similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/build.gradle rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/build.gradle diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/gradle.properties b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradle.properties similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/gradle.properties rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradle.properties diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.jar b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.jar rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.jar diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.properties b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.properties rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradle/wrapper/gradle-wrapper.properties diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/gradlew b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradlew similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/gradlew rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradlew diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/gradlew.bat b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradlew.bat similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/gradlew.bat rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/gradlew.bat diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/build.gradle.kts b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/build.gradle.kts similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/build.gradle.kts rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/build.gradle.kts diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt diff --git a/packages/cppjs-sample-mobile-reactnative-expo/android/settings.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/settings.gradle similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/android/settings.gradle rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/android/settings.gradle diff --git a/packages/cppjs-sample-mobile-reactnative-expo/app.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/app.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/app.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/app.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/app/(tabs)/_layout.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/(tabs)/_layout.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/app/(tabs)/_layout.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/(tabs)/_layout.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/app/(tabs)/explore.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/(tabs)/explore.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/app/(tabs)/explore.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/(tabs)/explore.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/app/(tabs)/index.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/(tabs)/index.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/app/(tabs)/index.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/(tabs)/index.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/app/+html.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/+html.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/app/+html.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/+html.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/app/+not-found.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/+not-found.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/app/+not-found.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/+not-found.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/app/_layout.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/_layout.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/app/_layout.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/app/_layout.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/fonts/SpaceMono-Regular.ttf b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/fonts/SpaceMono-Regular.ttf similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/fonts/SpaceMono-Regular.ttf rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/fonts/SpaceMono-Regular.ttf diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/adaptive-icon.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/adaptive-icon.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/adaptive-icon.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/adaptive-icon.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/favicon.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/favicon.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/favicon.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/favicon.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/icon.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/icon.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/icon.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/icon.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/partial-react-logo.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/partial-react-logo.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/partial-react-logo.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/partial-react-logo.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@2x.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@2x.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@2x.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@2x.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@3x.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@3x.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@3x.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/react-logo@3x.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/assets/images/splash.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/splash.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/assets/images/splash.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/assets/images/splash.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/babel.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/babel.config.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/babel.config.js rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/babel.config.js diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/Collapsible.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/Collapsible.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/Collapsible.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/Collapsible.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/ExternalLink.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ExternalLink.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/ExternalLink.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ExternalLink.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/HelloWave.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/HelloWave.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/HelloWave.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/HelloWave.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/ParallaxScrollView.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ParallaxScrollView.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/ParallaxScrollView.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ParallaxScrollView.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/ThemedText.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ThemedText.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/ThemedText.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ThemedText.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/ThemedView.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ThemedView.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/ThemedView.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/ThemedView.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/__tests__/ThemedText-test.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/__tests__/ThemedText-test.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/__tests__/ThemedText-test.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/__tests__/ThemedText-test.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/__tests__/__snapshots__/ThemedText-test.tsx.snap b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/__tests__/__snapshots__/ThemedText-test.tsx.snap similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/__tests__/__snapshots__/ThemedText-test.tsx.snap rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/__tests__/__snapshots__/ThemedText-test.tsx.snap diff --git a/packages/cppjs-sample-mobile-reactnative-expo/components/navigation/TabBarIcon.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/navigation/TabBarIcon.tsx similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/components/navigation/TabBarIcon.tsx rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/components/navigation/TabBarIcon.tsx diff --git a/packages/cppjs-sample-mobile-reactnative-expo/constants/Colors.ts b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/constants/Colors.ts similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/constants/Colors.ts rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/constants/Colors.ts diff --git a/packages/cppjs-sample-mobile-reactnative-expo/cppjs.config.mjs b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/cppjs.config.mjs similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/cppjs.config.mjs rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/cppjs.config.mjs diff --git a/packages/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.ts b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.ts similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.ts rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.ts diff --git a/packages/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.web.ts b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.web.ts similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.web.ts rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/hooks/useColorScheme.web.ts diff --git a/packages/cppjs-sample-mobile-reactnative-expo/hooks/useThemeColor.ts b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/hooks/useThemeColor.ts similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/hooks/useThemeColor.ts rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/hooks/useThemeColor.ts diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/.gitignore b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/.gitignore similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/.gitignore rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/.gitignore diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/.xcode.env b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/.xcode.env new file mode 100644 index 00000000..3d5782c7 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/Podfile b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/Podfile similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/Podfile rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/Podfile diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/Podfile.lock b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/Podfile.lock similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/Podfile.lock rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/Podfile.lock diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/Podfile.properties.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/Podfile.properties.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/Podfile.properties.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/Podfile.properties.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/project.pbxproj b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/project.pbxproj similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/project.pbxproj rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/project.pbxproj diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/xcshareddata/xcschemes/cppjssamplemobilereactnativeexpo.xcscheme b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/xcshareddata/xcschemes/cppjssamplemobilereactnativeexpo.xcscheme similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/xcshareddata/xcschemes/cppjssamplemobilereactnativeexpo.xcscheme rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcodeproj/xcshareddata/xcschemes/cppjssamplemobilereactnativeexpo.xcscheme diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcworkspace/contents.xcworkspacedata b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcworkspace/contents.xcworkspacedata similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcworkspace/contents.xcworkspacedata rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo.xcworkspace/contents.xcworkspacedata diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.h b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.h similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.h rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.h diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.mm b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.mm similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.mm rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/AppDelegate.mm diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/Contents.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/Contents.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/Contents.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/Contents.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/Contents.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/Contents.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/Contents.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/image.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/image.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/image.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/image.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/image.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/image.png similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/image.png rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/image.png diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Info.plist b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Info.plist similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Info.plist rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Info.plist diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/PrivacyInfo.xcprivacy b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/PrivacyInfo.xcprivacy similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/PrivacyInfo.xcprivacy rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/PrivacyInfo.xcprivacy diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/SplashScreen.storyboard b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/SplashScreen.storyboard similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/SplashScreen.storyboard rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/SplashScreen.storyboard diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Supporting/Expo.plist b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Supporting/Expo.plist similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Supporting/Expo.plist rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/Supporting/Expo.plist diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo-Bridging-Header.h b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo-Bridging-Header.h similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo-Bridging-Header.h rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo-Bridging-Header.h diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo.entitlements b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo.entitlements similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo.entitlements rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo.entitlements diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/main.m b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/main.m similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/main.m rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/main.m diff --git a/packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/noop-file.swift b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/noop-file.swift similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/noop-file.swift rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/ios/cppjssamplemobilereactnativeexpo/noop-file.swift diff --git a/packages/cppjs-sample-mobile-reactnative-expo/metro.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/metro.config.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/metro.config.js rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/metro.config.js diff --git a/packages/cppjs-sample-mobile-reactnative-expo/package-lock.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/package-lock.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/package-lock.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/package-lock.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/package.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/package.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/package.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/package.json diff --git a/packages/cppjs-sample-mobile-reactnative-expo/scripts/reset-project.js b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/scripts/reset-project.js similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/scripts/reset-project.js rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/scripts/reset-project.js diff --git a/packages/cppjs-sample-mobile-reactnative-cli/src/native/native.cpp b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/src/native/native.cpp similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-cli/src/native/native.cpp rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/src/native/native.cpp diff --git a/packages/cppjs-sample-web-react-vite/src/native/native.h b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/src/native/native.h similarity index 100% rename from packages/cppjs-sample-web-react-vite/src/native/native.h rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/src/native/native.h diff --git a/packages/cppjs-sample-mobile-reactnative-expo/tsconfig.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo/tsconfig.json similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/tsconfig.json rename to cppjs-samples/cppjs-sample-mobile-reactnative-expo/tsconfig.json diff --git a/cppjs-samples/cppjs-sample-web-react-rspack/.gitignore b/cppjs-samples/cppjs-sample-web-react-rspack/.gitignore new file mode 100644 index 00000000..6a479001 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-rspack/.gitignore @@ -0,0 +1,17 @@ +.cppjs +test-results +playwright-report + +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea diff --git a/packages/cppjs-sample-web-react-rspack/CHANGELOG.md b/cppjs-samples/cppjs-sample-web-react-rspack/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-web-react-rspack/CHANGELOG.md rename to cppjs-samples/cppjs-sample-web-react-rspack/CHANGELOG.md diff --git a/packages/cppjs-sample-web-react-rspack/README.md b/cppjs-samples/cppjs-sample-web-react-rspack/README.md similarity index 100% rename from packages/cppjs-sample-web-react-rspack/README.md rename to cppjs-samples/cppjs-sample-web-react-rspack/README.md diff --git a/packages/cppjs-sample-web-react-rspack/cppjs.config.mjs b/cppjs-samples/cppjs-sample-web-react-rspack/cppjs.config.mjs similarity index 100% rename from packages/cppjs-sample-web-react-rspack/cppjs.config.mjs rename to cppjs-samples/cppjs-sample-web-react-rspack/cppjs.config.mjs diff --git a/packages/cppjs-sample-web-vue-vite/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-sample-web-react-rspack/e2e/cppjs.spec.cjs similarity index 100% rename from packages/cppjs-sample-web-vue-vite/e2e/cppjs.spec.cjs rename to cppjs-samples/cppjs-sample-web-react-rspack/e2e/cppjs.spec.cjs diff --git a/cppjs-samples/cppjs-sample-web-react-rspack/index.html b/cppjs-samples/cppjs-sample-web-react-rspack/index.html new file mode 100644 index 00000000..981d7f74 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-rspack/index.html @@ -0,0 +1,11 @@ + + + + + + Rspack + React + + +
+ + diff --git a/packages/cppjs-sample-web-react-rspack/package.json b/cppjs-samples/cppjs-sample-web-react-rspack/package.json similarity index 100% rename from packages/cppjs-sample-web-react-rspack/package.json rename to cppjs-samples/cppjs-sample-web-react-rspack/package.json diff --git a/cppjs-samples/cppjs-sample-web-react-rspack/playwright.dev.config.cjs b/cppjs-samples/cppjs-sample-web-react-rspack/playwright.dev.config.cjs new file mode 100644 index 00000000..c08313b3 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-rspack/playwright.dev.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:8080', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run dev', + url: 'http://localhost:8080', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/cppjs-samples/cppjs-sample-web-react-rspack/playwright.prod.config.cjs b/cppjs-samples/cppjs-sample-web-react-rspack/playwright.prod.config.cjs new file mode 100644 index 00000000..3185df44 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-rspack/playwright.prod.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:3000', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run preview', + url: 'http://localhost:3000', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/packages/cppjs-sample-web-react-rspack/rspack.config.mjs b/cppjs-samples/cppjs-sample-web-react-rspack/rspack.config.mjs similarity index 100% rename from packages/cppjs-sample-web-react-rspack/rspack.config.mjs rename to cppjs-samples/cppjs-sample-web-react-rspack/rspack.config.mjs diff --git a/cppjs-samples/cppjs-sample-web-react-rspack/src/App.css b/cppjs-samples/cppjs-sample-web-react-rspack/src/App.css new file mode 100644 index 00000000..1b83399e --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-rspack/src/App.css @@ -0,0 +1,41 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a > .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/packages/cppjs-sample-web-react-rspack/src/App.jsx b/cppjs-samples/cppjs-sample-web-react-rspack/src/App.jsx similarity index 100% rename from packages/cppjs-sample-web-react-rspack/src/App.jsx rename to cppjs-samples/cppjs-sample-web-react-rspack/src/App.jsx diff --git a/packages/cppjs-sample-web-react-vite/src/assets/react.svg b/cppjs-samples/cppjs-sample-web-react-rspack/src/assets/react.svg similarity index 100% rename from packages/cppjs-sample-web-react-vite/src/assets/react.svg rename to cppjs-samples/cppjs-sample-web-react-rspack/src/assets/react.svg diff --git a/cppjs-samples/cppjs-sample-web-react-rspack/src/index.css b/cppjs-samples/cppjs-sample-web-react-rspack/src/index.css new file mode 100644 index 00000000..917888c1 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-rspack/src/index.css @@ -0,0 +1,70 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/cppjs-samples/cppjs-sample-web-react-rspack/src/main.jsx b/cppjs-samples/cppjs-sample-web-react-rspack/src/main.jsx new file mode 100644 index 00000000..9af0bb63 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-rspack/src/main.jsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')).render( + + + +) diff --git a/packages/cppjs-sample-mobile-reactnative-expo/src/native/native.cpp b/cppjs-samples/cppjs-sample-web-react-rspack/src/native/native.cpp similarity index 100% rename from packages/cppjs-sample-mobile-reactnative-expo/src/native/native.cpp rename to cppjs-samples/cppjs-sample-web-react-rspack/src/native/native.cpp diff --git a/packages/cppjs-sample-web-svelte-vite/src/native/native.h b/cppjs-samples/cppjs-sample-web-react-rspack/src/native/native.h similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/src/native/native.h rename to cppjs-samples/cppjs-sample-web-react-rspack/src/native/native.h diff --git a/packages/cppjs-sample-web-react-vite/.gitignore b/cppjs-samples/cppjs-sample-web-react-vite/.gitignore similarity index 100% rename from packages/cppjs-sample-web-react-vite/.gitignore rename to cppjs-samples/cppjs-sample-web-react-vite/.gitignore diff --git a/packages/cppjs-sample-web-react-vite/CHANGELOG.md b/cppjs-samples/cppjs-sample-web-react-vite/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-web-react-vite/CHANGELOG.md rename to cppjs-samples/cppjs-sample-web-react-vite/CHANGELOG.md diff --git a/packages/cppjs-sample-web-react-vite/README.md b/cppjs-samples/cppjs-sample-web-react-vite/README.md similarity index 100% rename from packages/cppjs-sample-web-react-vite/README.md rename to cppjs-samples/cppjs-sample-web-react-vite/README.md diff --git a/packages/cppjs-sample-web-react-vite/cppjs.config.js b/cppjs-samples/cppjs-sample-web-react-vite/cppjs.config.js similarity index 100% rename from packages/cppjs-sample-web-react-vite/cppjs.config.js rename to cppjs-samples/cppjs-sample-web-react-vite/cppjs.config.js diff --git a/cppjs-samples/cppjs-sample-web-react-vite/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-sample-web-react-vite/e2e/cppjs.spec.cjs new file mode 100644 index 00000000..6eb59314 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-vite/e2e/cppjs.spec.cjs @@ -0,0 +1,7 @@ +// @ts-check +const { test, expect } = require('@playwright/test'); + +test('check string receiving from c++', async ({ page }) => { + await page.goto('/') + await expect(page.getByText('Matrix multiplier with c++ => J₃ * (2*J₃) = 6*J₃')).toBeVisible() +}); diff --git a/packages/cppjs-sample-web-react-vite/eslint.config.js b/cppjs-samples/cppjs-sample-web-react-vite/eslint.config.js similarity index 100% rename from packages/cppjs-sample-web-react-vite/eslint.config.js rename to cppjs-samples/cppjs-sample-web-react-vite/eslint.config.js diff --git a/packages/cppjs-sample-web-react-vite/index.html b/cppjs-samples/cppjs-sample-web-react-vite/index.html similarity index 100% rename from packages/cppjs-sample-web-react-vite/index.html rename to cppjs-samples/cppjs-sample-web-react-vite/index.html diff --git a/packages/cppjs-sample-web-react-vite/package.json b/cppjs-samples/cppjs-sample-web-react-vite/package.json similarity index 100% rename from packages/cppjs-sample-web-react-vite/package.json rename to cppjs-samples/cppjs-sample-web-react-vite/package.json diff --git a/packages/cppjs-sample-web-vue-vite/playwright.dev.config.cjs b/cppjs-samples/cppjs-sample-web-react-vite/playwright.dev.config.cjs similarity index 100% rename from packages/cppjs-sample-web-vue-vite/playwright.dev.config.cjs rename to cppjs-samples/cppjs-sample-web-react-vite/playwright.dev.config.cjs diff --git a/packages/cppjs-sample-web-vue-vite/playwright.prod.config.cjs b/cppjs-samples/cppjs-sample-web-react-vite/playwright.prod.config.cjs similarity index 100% rename from packages/cppjs-sample-web-vue-vite/playwright.prod.config.cjs rename to cppjs-samples/cppjs-sample-web-react-vite/playwright.prod.config.cjs diff --git a/packages/cppjs-sample-web-vue-vite/public/vite.svg b/cppjs-samples/cppjs-sample-web-react-vite/public/vite.svg similarity index 100% rename from packages/cppjs-sample-web-vue-vite/public/vite.svg rename to cppjs-samples/cppjs-sample-web-react-vite/public/vite.svg diff --git a/packages/cppjs-sample-web-react-vite/src/App.css b/cppjs-samples/cppjs-sample-web-react-vite/src/App.css similarity index 100% rename from packages/cppjs-sample-web-react-vite/src/App.css rename to cppjs-samples/cppjs-sample-web-react-vite/src/App.css diff --git a/packages/cppjs-sample-web-react-vite/src/App.jsx b/cppjs-samples/cppjs-sample-web-react-vite/src/App.jsx similarity index 100% rename from packages/cppjs-sample-web-react-vite/src/App.jsx rename to cppjs-samples/cppjs-sample-web-react-vite/src/App.jsx diff --git a/cppjs-samples/cppjs-sample-web-react-vite/src/assets/react.svg b/cppjs-samples/cppjs-sample-web-react-vite/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-react-vite/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/cppjs-sample-web-react-vite/src/index.css b/cppjs-samples/cppjs-sample-web-react-vite/src/index.css similarity index 100% rename from packages/cppjs-sample-web-react-vite/src/index.css rename to cppjs-samples/cppjs-sample-web-react-vite/src/index.css diff --git a/packages/cppjs-sample-web-react-vite/src/main.jsx b/cppjs-samples/cppjs-sample-web-react-vite/src/main.jsx similarity index 100% rename from packages/cppjs-sample-web-react-vite/src/main.jsx rename to cppjs-samples/cppjs-sample-web-react-vite/src/main.jsx diff --git a/packages/cppjs-sample-web-react-rspack/src/native/native.cpp b/cppjs-samples/cppjs-sample-web-react-vite/src/native/native.cpp similarity index 100% rename from packages/cppjs-sample-web-react-rspack/src/native/native.cpp rename to cppjs-samples/cppjs-sample-web-react-vite/src/native/native.cpp diff --git a/packages/cppjs-sample-web-vanilla/src/native/native.h b/cppjs-samples/cppjs-sample-web-react-vite/src/native/native.h similarity index 100% rename from packages/cppjs-sample-web-vanilla/src/native/native.h rename to cppjs-samples/cppjs-sample-web-react-vite/src/native/native.h diff --git a/packages/cppjs-sample-web-react-vite/vite.config.js b/cppjs-samples/cppjs-sample-web-react-vite/vite.config.js similarity index 100% rename from packages/cppjs-sample-web-react-vite/vite.config.js rename to cppjs-samples/cppjs-sample-web-react-vite/vite.config.js diff --git a/packages/cppjs-sample-web-svelte-vite/.gitignore b/cppjs-samples/cppjs-sample-web-svelte-vite/.gitignore similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/.gitignore rename to cppjs-samples/cppjs-sample-web-svelte-vite/.gitignore diff --git a/packages/cppjs-sample-web-svelte-vite/CHANGELOG.md b/cppjs-samples/cppjs-sample-web-svelte-vite/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/CHANGELOG.md rename to cppjs-samples/cppjs-sample-web-svelte-vite/CHANGELOG.md diff --git a/packages/cppjs-sample-web-svelte-vite/README.md b/cppjs-samples/cppjs-sample-web-svelte-vite/README.md similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/README.md rename to cppjs-samples/cppjs-sample-web-svelte-vite/README.md diff --git a/packages/cppjs-sample-web-svelte-vite/cppjs.config.js b/cppjs-samples/cppjs-sample-web-svelte-vite/cppjs.config.js similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/cppjs.config.js rename to cppjs-samples/cppjs-sample-web-svelte-vite/cppjs.config.js diff --git a/cppjs-samples/cppjs-sample-web-svelte-vite/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-sample-web-svelte-vite/e2e/cppjs.spec.cjs new file mode 100644 index 00000000..6eb59314 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-svelte-vite/e2e/cppjs.spec.cjs @@ -0,0 +1,7 @@ +// @ts-check +const { test, expect } = require('@playwright/test'); + +test('check string receiving from c++', async ({ page }) => { + await page.goto('/') + await expect(page.getByText('Matrix multiplier with c++ => J₃ * (2*J₃) = 6*J₃')).toBeVisible() +}); diff --git a/packages/cppjs-sample-web-svelte-vite/index.html b/cppjs-samples/cppjs-sample-web-svelte-vite/index.html similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/index.html rename to cppjs-samples/cppjs-sample-web-svelte-vite/index.html diff --git a/packages/cppjs-sample-web-svelte-vite/jsconfig.json b/cppjs-samples/cppjs-sample-web-svelte-vite/jsconfig.json similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/jsconfig.json rename to cppjs-samples/cppjs-sample-web-svelte-vite/jsconfig.json diff --git a/packages/cppjs-sample-web-svelte-vite/package.json b/cppjs-samples/cppjs-sample-web-svelte-vite/package.json similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/package.json rename to cppjs-samples/cppjs-sample-web-svelte-vite/package.json diff --git a/cppjs-samples/cppjs-sample-web-svelte-vite/playwright.dev.config.cjs b/cppjs-samples/cppjs-sample-web-svelte-vite/playwright.dev.config.cjs new file mode 100644 index 00000000..920722a8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-svelte-vite/playwright.dev.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:5173', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run dev', + url: 'http://localhost:5173', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/cppjs-samples/cppjs-sample-web-svelte-vite/playwright.prod.config.cjs b/cppjs-samples/cppjs-sample-web-svelte-vite/playwright.prod.config.cjs new file mode 100644 index 00000000..d504f959 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-svelte-vite/playwright.prod.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:4173', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run preview', + url: 'http://localhost:4173', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/cppjs-samples/cppjs-sample-web-svelte-vite/public/vite.svg b/cppjs-samples/cppjs-sample-web-svelte-vite/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-svelte-vite/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/cppjs-sample-web-svelte-vite/src/App.svelte b/cppjs-samples/cppjs-sample-web-svelte-vite/src/App.svelte similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/src/App.svelte rename to cppjs-samples/cppjs-sample-web-svelte-vite/src/App.svelte diff --git a/packages/cppjs-sample-web-svelte-vite/src/app.css b/cppjs-samples/cppjs-sample-web-svelte-vite/src/app.css similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/src/app.css rename to cppjs-samples/cppjs-sample-web-svelte-vite/src/app.css diff --git a/packages/cppjs-sample-web-svelte-vite/src/main.js b/cppjs-samples/cppjs-sample-web-svelte-vite/src/main.js similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/src/main.js rename to cppjs-samples/cppjs-sample-web-svelte-vite/src/main.js diff --git a/packages/cppjs-sample-web-react-vite/src/native/native.cpp b/cppjs-samples/cppjs-sample-web-svelte-vite/src/native/native.cpp similarity index 100% rename from packages/cppjs-sample-web-react-vite/src/native/native.cpp rename to cppjs-samples/cppjs-sample-web-svelte-vite/src/native/native.cpp diff --git a/packages/cppjs-sample-web-vue-vite/src/native/native.h b/cppjs-samples/cppjs-sample-web-svelte-vite/src/native/native.h similarity index 100% rename from packages/cppjs-sample-web-vue-vite/src/native/native.h rename to cppjs-samples/cppjs-sample-web-svelte-vite/src/native/native.h diff --git a/packages/cppjs-sample-web-svelte-vite/src/vite-env.d.ts b/cppjs-samples/cppjs-sample-web-svelte-vite/src/vite-env.d.ts similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/src/vite-env.d.ts rename to cppjs-samples/cppjs-sample-web-svelte-vite/src/vite-env.d.ts diff --git a/packages/cppjs-sample-web-svelte-vite/svelte.config.js b/cppjs-samples/cppjs-sample-web-svelte-vite/svelte.config.js similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/svelte.config.js rename to cppjs-samples/cppjs-sample-web-svelte-vite/svelte.config.js diff --git a/packages/cppjs-sample-web-svelte-vite/vite.config.js b/cppjs-samples/cppjs-sample-web-svelte-vite/vite.config.js similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/vite.config.js rename to cppjs-samples/cppjs-sample-web-svelte-vite/vite.config.js diff --git a/cppjs-samples/cppjs-sample-web-vanilla/.gitignore b/cppjs-samples/cppjs-sample-web-vanilla/.gitignore new file mode 100644 index 00000000..635832df --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vanilla/.gitignore @@ -0,0 +1,4 @@ +.cppjs +dist +test-results +playwright-report diff --git a/cppjs-samples/cppjs-sample-web-vanilla/CHANGELOG.md b/cppjs-samples/cppjs-sample-web-vanilla/CHANGELOG.md new file mode 100644 index 00000000..a308ef80 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vanilla/CHANGELOG.md @@ -0,0 +1,27 @@ +# @cpp.js/sample-web-vanilla + +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - cpp.js@1.0.4 + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release + +### Patch Changes + +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0 + +## 1.0.0-beta.13 + +### Patch Changes + +- chore: add initial version of CHANGELOGS files +- Updated dependencies + - @cpp.js/sample-lib-prebuilt-matrix@1.0.0-beta.32 diff --git a/cppjs-samples/cppjs-sample-web-vanilla/README.md b/cppjs-samples/cppjs-sample-web-vanilla/README.md new file mode 100644 index 00000000..13bfc805 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vanilla/README.md @@ -0,0 +1,32 @@ +# @cpp.js/sample-web-vanilla +**Cpp.js Web Vanilla sample** + +
+ NPM version + + + License + + + Docs - Standalone + + +# Getting Started + +>**Note**: Make sure you have completed the [Cpp.js - Prerequisites](https://cpp.js.org/docs/guide/getting-started/prerequisites) instructions. + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get Started + +Build native code to webassembly: + +```bash +pnpm run build +``` diff --git a/packages/cppjs-sample-web-vanilla/cppjs.config.mjs b/cppjs-samples/cppjs-sample-web-vanilla/cppjs.config.mjs similarity index 100% rename from packages/cppjs-sample-web-vanilla/cppjs.config.mjs rename to cppjs-samples/cppjs-sample-web-vanilla/cppjs.config.mjs diff --git a/cppjs-samples/cppjs-sample-web-vanilla/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-sample-web-vanilla/e2e/cppjs.spec.cjs new file mode 100644 index 00000000..6eb59314 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vanilla/e2e/cppjs.spec.cjs @@ -0,0 +1,7 @@ +// @ts-check +const { test, expect } = require('@playwright/test'); + +test('check string receiving from c++', async ({ page }) => { + await page.goto('/') + await expect(page.getByText('Matrix multiplier with c++ => J₃ * (2*J₃) = 6*J₃')).toBeVisible() +}); diff --git a/packages/cppjs-sample-web-vanilla/index.html b/cppjs-samples/cppjs-sample-web-vanilla/index.html similarity index 100% rename from packages/cppjs-sample-web-vanilla/index.html rename to cppjs-samples/cppjs-sample-web-vanilla/index.html diff --git a/packages/cppjs-sample-web-vanilla/package.json b/cppjs-samples/cppjs-sample-web-vanilla/package.json similarity index 100% rename from packages/cppjs-sample-web-vanilla/package.json rename to cppjs-samples/cppjs-sample-web-vanilla/package.json diff --git a/cppjs-samples/cppjs-sample-web-vanilla/playwright.prod.config.cjs b/cppjs-samples/cppjs-sample-web-vanilla/playwright.prod.config.cjs new file mode 100644 index 00000000..3185df44 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vanilla/playwright.prod.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:3000', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run preview', + url: 'http://localhost:3000', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/packages/cppjs-sample-web-svelte-vite/src/native/native.cpp b/cppjs-samples/cppjs-sample-web-vanilla/src/native/native.cpp similarity index 100% rename from packages/cppjs-sample-web-svelte-vite/src/native/native.cpp rename to cppjs-samples/cppjs-sample-web-vanilla/src/native/native.cpp diff --git a/cppjs-samples/cppjs-sample-web-vanilla/src/native/native.h b/cppjs-samples/cppjs-sample-web-vanilla/src/native/native.h new file mode 100644 index 00000000..76360467 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vanilla/src/native/native.h @@ -0,0 +1,12 @@ +#ifndef _NATIVE_H +#define _NATIVE_H + +#include +#include + +class Native { +public: + static std::string sample(); +}; + +#endif diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/.gitignore b/cppjs-samples/cppjs-sample-web-vue-vite/.gitignore new file mode 100644 index 00000000..02d7f513 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/.gitignore @@ -0,0 +1,29 @@ +# cpp.js +.cppjs +test-results +playwright-report + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/cppjs-sample-web-vue-vite/CHANGELOG.md b/cppjs-samples/cppjs-sample-web-vue-vite/CHANGELOG.md similarity index 100% rename from packages/cppjs-sample-web-vue-vite/CHANGELOG.md rename to cppjs-samples/cppjs-sample-web-vue-vite/CHANGELOG.md diff --git a/packages/cppjs-sample-web-vue-vite/README.md b/cppjs-samples/cppjs-sample-web-vue-vite/README.md similarity index 100% rename from packages/cppjs-sample-web-vue-vite/README.md rename to cppjs-samples/cppjs-sample-web-vue-vite/README.md diff --git a/packages/cppjs-sample-web-vue-vite/cppjs.config.js b/cppjs-samples/cppjs-sample-web-vue-vite/cppjs.config.js similarity index 100% rename from packages/cppjs-sample-web-vue-vite/cppjs.config.js rename to cppjs-samples/cppjs-sample-web-vue-vite/cppjs.config.js diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/e2e/cppjs.spec.cjs b/cppjs-samples/cppjs-sample-web-vue-vite/e2e/cppjs.spec.cjs new file mode 100644 index 00000000..6eb59314 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/e2e/cppjs.spec.cjs @@ -0,0 +1,7 @@ +// @ts-check +const { test, expect } = require('@playwright/test'); + +test('check string receiving from c++', async ({ page }) => { + await page.goto('/') + await expect(page.getByText('Matrix multiplier with c++ => J₃ * (2*J₃) = 6*J₃')).toBeVisible() +}); diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/index.html b/cppjs-samples/cppjs-sample-web-vue-vite/index.html new file mode 100644 index 00000000..282d98b7 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/index.html @@ -0,0 +1,13 @@ + + + + + + + Cpp.js + Vite + Vue 3 + + +
+ + + diff --git a/packages/cppjs-sample-web-vue-vite/package.json b/cppjs-samples/cppjs-sample-web-vue-vite/package.json similarity index 99% rename from packages/cppjs-sample-web-vue-vite/package.json rename to cppjs-samples/cppjs-sample-web-vue-vite/package.json index fa97d448..36953df1 100644 --- a/packages/cppjs-sample-web-vue-vite/package.json +++ b/cppjs-samples/cppjs-sample-web-vue-vite/package.json @@ -31,4 +31,4 @@ "vue", "vite" ] -} +} \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/playwright.dev.config.cjs b/cppjs-samples/cppjs-sample-web-vue-vite/playwright.dev.config.cjs new file mode 100644 index 00000000..920722a8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/playwright.dev.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:5173', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run dev', + url: 'http://localhost:5173', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/playwright.prod.config.cjs b/cppjs-samples/cppjs-sample-web-vue-vite/playwright.prod.config.cjs new file mode 100644 index 00000000..d504f959 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/playwright.prod.config.cjs @@ -0,0 +1,48 @@ +// @ts-check +const { defineConfig, devices } = require('@playwright/test'); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +module.exports = defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 50000, + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + + reporter: 'html', + + use: { + baseURL: 'http://localhost:4173', + trace: 'on-first-retry', + }, + + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'pnpm run preview', + url: 'http://localhost:4173', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/public/vite.svg b/cppjs-samples/cppjs-sample-web-vue-vite/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/serve.json b/cppjs-samples/cppjs-sample-web-vue-vite/serve.json new file mode 100644 index 00000000..129724ad --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/serve.json @@ -0,0 +1,17 @@ +{ + "headers": [ + { + "source" : "*", + "headers" : [ + { + "key" : "Cross-Origin-Opener-Policy", + "value" : "same-origin" + }, + { + "key" : "Cross-Origin-Embedder-Policy", + "value" : "require-corp" + } + ] + } + ] +} diff --git a/packages/cppjs-sample-web-vue-vite/src/App.vue b/cppjs-samples/cppjs-sample-web-vue-vite/src/App.vue similarity index 100% rename from packages/cppjs-sample-web-vue-vite/src/App.vue rename to cppjs-samples/cppjs-sample-web-vue-vite/src/App.vue diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/src/main.js b/cppjs-samples/cppjs-sample-web-vue-vite/src/main.js new file mode 100644 index 00000000..2425c0f7 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/src/main.js @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import './style.css' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.cpp b/cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.cpp new file mode 100644 index 00000000..7cae0883 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.cpp @@ -0,0 +1,9 @@ +#include "native.h" +#include + +std::string Native::sample() { + auto firstMatrix = std::make_shared(9, 1); + auto secondMatrix = std::make_shared(9, 2); + auto resultStr = std::to_string(firstMatrix->multiple(secondMatrix)->get(0)); + return "J₃ * (2*J₃) = " + resultStr + "*J₃"; +} diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.h b/cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.h new file mode 100644 index 00000000..f9902779 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/src/native/native.h @@ -0,0 +1,12 @@ +#ifndef _NATIVE_H +#define _NATIVE_H + +#include +#include + +class Native { +public: + static std::string sample(); +}; + +#endif diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/src/style.css b/cppjs-samples/cppjs-sample-web-vue-vite/src/style.css new file mode 100644 index 00000000..0ce4430f --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/src/style.css @@ -0,0 +1,38 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } +} diff --git a/cppjs-samples/cppjs-sample-web-vue-vite/vite.config.js b/cppjs-samples/cppjs-sample-web-vue-vite/vite.config.js new file mode 100644 index 00000000..db71ac71 --- /dev/null +++ b/cppjs-samples/cppjs-sample-web-vue-vite/vite.config.js @@ -0,0 +1,18 @@ +import { fileURLToPath, URL } from 'node:url'; + +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import viteCppjsPlugin from '@cpp.js/plugin-vite'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + viteCppjsPlugin(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, +}); diff --git a/package.json b/package.json index 4cb2f687..4e64be27 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,8 @@ { "private": true, "scripts": { - "build:packages": "pnpm --filter=@cpp.js/package-iconv run build && pnpm --filter=@cpp.js/package-zlib run build && pnpm --filter=@cpp.js/package-expat run build && pnpm --filter=@cpp.js/package-webp run build && pnpm --filter=@cpp.js/package-tiff run build && pnpm --filter=@cpp.js/package-sqlite3 run build && pnpm --filter=@cpp.js/package-proj run build && pnpm --filter=@cpp.js/package-geotiff run build && pnpm --filter=@cpp.js/package-geos run build && pnpm --filter=@cpp.js/package-spatialite run build && pnpm --filter=@cpp.js/package-gdal run build", + "build:packages": "pnpm --filter=@cpp.js/package-iconv run build && pnpm --filter=@cpp.js/package-zlib run build && pnpm --filter=@cpp.js/package-expat run build && pnpm --filter=@cpp.js/package-webp run build && pnpm --filter=@cpp.js/package-tiff run build && pnpm --filter=@cpp.js/package-sqlite3 run build && pnpm --filter=@cpp.js/package-proj run build && pnpm --filter=@cpp.js/package-geotiff run build && pnpm --filter=@cpp.js/package-geos run build && pnpm --filter=@cpp.js/package-spatialite run build && pnpm --filter=@cpp.js/package-openssl run build && pnpm --filter=@cpp.js/package-curl run build && pnpm --filter=@cpp.js/package-gdal run build", + "build:packages2": "pnpm --filter=@cpp.js/package-iconv* run build && pnpm --filter=@cpp.js/package-zlib* run build && pnpm --filter=@cpp.js/package-expat* run build && pnpm --filter=@cpp.js/package-webp* run build && pnpm --filter=@cpp.js/package-tiff* run build && pnpm --filter=@cpp.js/package-sqlite3* run build && pnpm --filter=@cpp.js/package-proj* run build && pnpm --filter=@cpp.js/package-geotiff* run build && pnpm --filter=@cpp.js/package-geos* run build && pnpm --filter=@cpp.js/package-spatialite* run build && pnpm --filter=@cpp.js/package-openssl* run build && pnpm --filter=@cpp.js/package-curl* run build && pnpm --filter=@cpp.js/package-gdal* run build", "build:samples": "pnpm --filter=@cpp.js/sample-* run build", "build:samples:lib": "pnpm --filter=@cpp.js/sample-lib-* run build", "build:samples:lib:wasm": "pnpm --filter=@cpp.js/sample-lib-* run build:wasm", @@ -10,16 +11,18 @@ "build:samples:wasm": "pnpm --filter=@cpp.js/sample-web-* run build && pnpm --filter=@cpp.js/sample-cloud-* run build && pnpm --filter=@cpp.js/sample-backend-* run build && pnpm run build:samples:lib:wasm", "build:website": "pnpm --filter=@cpp.js/website run build", "build": "pnpm run build:packages; pnpm run build:samples;", - "clear:cache": "find packages -name \".cppjs\" -type d -maxdepth 2 -exec rm -rf {} +", - "clear:cache:samples": "find packages -name \".cppjs\" -path \"*cppjs-sample-*\" -type d -maxdepth 2 -exec rm -rf {} +", - "clear:cache:packages": "find packages -name \".cppjs\" -path \"*cppjs-package-*\" -type d -maxdepth 2 -exec rm -rf {} +", - "clear:dist": "find packages -name \"*.xcframework\" -maxdepth 2 -exec rm -rf {} +; find packages -name \"dist\" -type d -maxdepth 2 -exec rm -rf {} +", - "clear:dist:samples": "find packages -name \"*.xcframework\" -path \"*cppjs-sample-*\" -maxdepth 2 -exec rm -rf {} +; find packages -name \"dist\" -path \"*cppjs-sample-*\" -type d -maxdepth 2 -exec rm -rf {} +", - "clear:dist:packages": "find packages -name \"*.xcframework\" -path \"*cppjs-package-*\" -maxdepth 2 -exec rm -rf {} +; find packages -name \"dist\" -path \"*cppjs-package-*\" -type d -maxdepth 2 -exec rm -rf {} +", - "clear:pack": "find packages -name \"*.tgz\" -type d -maxdepth 2 -exec rm -rf {} +", + "clear:cache": "find cppjs-packages -name \".cppjs\" -type d -maxdepth 3 -exec rm -rf {} +", + "clear:cache:samples": "find cppjs-packages -name \".cppjs\" -path \"*cppjs-sample-*\" -type d -maxdepth 3 -exec rm -rf {} +", + "clear:cache:packages": "find cppjs-packages -name \".cppjs\" -path \"*cppjs-package-*\" -type d -maxdepth 3 -exec rm -rf {} +", + "clear:dist": "find cppjs-packages -name \"*.xcframework\" -maxdepth 3 -exec rm -rf {} +; find cppjs-packages -name \"dist\" -type d -maxdepth 3 -exec rm -rf {} +", + "clear:dist:samples": "find cppjs-packages -name \"*.xcframework\" -path \"*cppjs-sample-*\" -maxdepth 3 -exec rm -rf {} +; find cppjs-packages -name \"dist\" -path \"*cppjs-sample-*\" -type d -maxdepth 3 -exec rm -rf {} +", + "clear:dist:packages": "find cppjs-packages -name \"*.xcframework\" -path \"*cppjs-package-*\" -maxdepth 3 -exec rm -rf {} +; find cppjs-packages -name \"dist\" -path \"*cppjs-package-*\" -type d -maxdepth 3 -exec rm -rf {} +", + "clear:dist:packages:android": "find cppjs-packages -name \"dist\" -path \"*cppjs-package-*-android*\" -type d -maxdepth 3 -exec rm -rf {} +", + "clear:pack": "find cppjs-packages -name \"*.tgz\" -type d -maxdepth 3 -exec rm -rf {} +", "clear": "pnpm run clear:cache; pnpm run clear:dist; pnpm run clear:pack", "clear:samples": "pnpm run clear:cache:samples; pnpm run clear:dist:samples", - "clear:packages": "pnpm run clear:cache:package; pnpm run clear:dist:package", + "clear:packages": "pnpm run clear:cache:packages; pnpm run clear:dist:packages", + "clear:packages:android": "pnpm run clear:cache:packages; pnpm run clear:dist:packages:android", "pack:list": "find packages -name \"*.tgz\" -type d -maxdepth 2", "ci:linux:build:package": "pnpm --filter=@cpp.js/package-zlib run build", "ci:linux:build": "pnpm run build:samples && pnpm run ci:linux:build:package", @@ -48,4 +51,4 @@ "@changesets/cli": "^2.27.11" }, "packageManager": "pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1" -} +} \ No newline at end of file diff --git a/packages/cpp.js/src/actions/buildWasm.js b/packages/cpp.js/src/actions/buildWasm.js deleted file mode 100644 index 0eecf9eb..00000000 --- a/packages/cpp.js/src/actions/buildWasm.js +++ /dev/null @@ -1,68 +0,0 @@ -import fs from 'node:fs'; -import run from './run.js'; -import getDependLibs from './getDependLibs.js'; -import getData from './getData.js'; -import buildJs from './buildJs.js'; -import state from '../state/index.js'; - -export default async function buildWasm(type, isProd = false) { - const buildType = isProd ? 'Release' : 'Debug'; - const libs = [ - ...getDependLibs(), - `${state.config.paths.build}/Source-${buildType}/Emscripten-x86_64/lib${state.config.general.name}.a`, - `${state.config.paths.build}/Bridge-${buildType}/Emscripten-x86_64/lib${state.config.general.name}.a`, - ]; - - if (type === 'browser') { - console.log('wasm compiling for browser...'); - const t0 = performance.now(); - const data = Object.entries(getData('data', 'Emscripten-x86_64', 'browser')).map(([key, value]) => ['--preload-file', `${key.replaceAll('@', '@@')}@${value}`]).flat(); - run('emcc', [ - '-lembind', '-Wl,--whole-archive', - ...libs, ...(isProd ? ['-O3'] : []), - '-s', 'WASM=1', '-s', 'MODULARIZE=1', '-s', 'DYNAMIC_EXECUTION=0', - '-s', 'RESERVED_FUNCTION_POINTERS=200', '-s', 'DISABLE_EXCEPTION_CATCHING=0', '-s', 'FORCE_FILESYSTEM=1', - '-s', 'ALLOW_MEMORY_GROWTH=1', - '-s', 'EXPORTED_RUNTIME_METHODS=["FS", "ENV"]', - '-o', `${state.config.paths.build}/${state.config.general.name}.js`, - ...data, - ]); - const t1 = performance.now(); - console.log('wasm compiled for browser...', Math.round(t1 - t0)); - console.log('js compiling for browser...'); - await buildJs(`${state.config.paths.build}/${state.config.general.name}.js`, 'browser'); - const t2 = performance.now(); - console.log('js compiled for browser...', Math.round(t2 - t1)); - } - - if (type === 'node') { - console.log('wasm compiling for node...'); - run('emcc', [ - '-lembind', '-Wl,--whole-archive', '-lnodefs.js', - ...libs, ...(isProd ? ['-O3'] : []), - '-s', 'WASM=1', '-s', 'MODULARIZE=1', '-s', 'DYNAMIC_EXECUTION=0', - '-s', 'RESERVED_FUNCTION_POINTERS=200', '-s', 'DISABLE_EXCEPTION_CATCHING=0', '-s', 'FORCE_FILESYSTEM=1', '-s', 'NODERAWFS', - '-s', 'ALLOW_MEMORY_GROWTH=1', - '-s', 'EXPORTED_RUNTIME_METHODS=["FS", "ENV", "NODEFS"]', - '-o', `${state.config.paths.build}/${state.config.general.name}.js`, - ]); - console.log('wasm compiled for node...'); - console.log('js compiling for node...'); - await buildJs(`${state.config.paths.build}/${state.config.general.name}.js`, 'node'); - console.log('js compiled for node...'); - - Object.entries(getData('data', 'Emscripten-x86_64', 'node')).forEach(([key, value]) => { - if (fs.existsSync(key)) { - const dAssetPath = `${state.config.paths.build}/data/${value}`; - if (!fs.existsSync(dAssetPath)) { - fs.mkdirSync(dAssetPath, { recursive: true }); - fs.cpSync(key, dAssetPath, { recursive: true }); - } - } - }); - } - - if (fs.existsSync(`${state.config.paths.build}/${state.config.general.name}.data`)) { - fs.renameSync(`${state.config.paths.build}/${state.config.general.name}.data`, `${state.config.paths.build}/${state.config.general.name}.data.txt`); - } -} diff --git a/packages/cpp.js/src/assets/dist.cmake b/packages/cpp.js/src/assets/dist.cmake deleted file mode 100644 index 06d6d33a..00000000 --- a/packages/cpp.js/src/assets/dist.cmake +++ /dev/null @@ -1,44 +0,0 @@ -cmake_minimum_required(VERSION 3.28) -set(CMAKE_CXX_STANDARD 11) -set(PROJECT_NAME "___PROJECT_NAME___") -set(PROJECT_LIBS "___PROJECT_LIBS___") -project("${PROJECT_NAME}") - -if(ANDROID) - set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_ANDROID_ARCH_ABI}") - set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") -elseif(APPLE) - if (CMAKE_SYSTEM_NAME STREQUAL "iOS") - set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/../..") - else() - set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") - set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") - endif() -elseif(UNIX) - set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") - set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") -else() - set(PACKAGE_HOST "${CMAKE_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") - set(PACKAGE_DIR "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/lib") -endif() - -set(PROJECT_LIBS_DIR) -foreach(L IN LISTS PROJECT_LIBS) - SET(FOUND_LIB "FOUND_LIB-NOTFOUND") - find_library(FOUND_LIB - NAMES "${L}" - PATHS "${PACKAGE_DIR}" - NO_CACHE - NO_DEFAULT_PATH - NO_CMAKE_FIND_ROOT_PATH - REQUIRED - ) - LIST(APPEND PROJECT_LIBS_DIR ${FOUND_LIB}) -endforeach() - -add_library("${PROJECT_NAME}" INTERFACE) -target_link_libraries("${PROJECT_NAME}" INTERFACE "${PROJECT_LIBS_DIR}") - -if(NOT APPLE) -target_include_directories("${PROJECT_NAME}" INTERFACE "${PROJECT_SOURCE_DIR}/${PACKAGE_HOST}/include") -endif() diff --git a/packages/cpp.js/src/utils/findFiles.js b/packages/cpp.js/src/utils/findFiles.js deleted file mode 100644 index cd98352f..00000000 --- a/packages/cpp.js/src/utils/findFiles.js +++ /dev/null @@ -1,5 +0,0 @@ -import { glob } from 'glob'; - -export default function findFiles(regex, options = {}) { - return glob.sync(regex, { absolute: true, posix: true, ...options }).map(p => p.replace('//?/', '')); -} diff --git a/packages/cppjs-package-gdal/cppjs.config.js b/packages/cppjs-package-gdal/cppjs.config.js deleted file mode 100644 index 601c0479..00000000 --- a/packages/cppjs-package-gdal/cppjs.config.js +++ /dev/null @@ -1,88 +0,0 @@ -import expat from '@cpp.js/package-expat/cppjs.config.js'; -import geos from '@cpp.js/package-geos/cppjs.config.js'; -import geotiff from '@cpp.js/package-geotiff/cppjs.config.js'; -import iconv from '@cpp.js/package-iconv/cppjs.config.js'; -import proj from '@cpp.js/package-proj/cppjs.config.js'; -import spatialite from '@cpp.js/package-spatialite/cppjs.config.js'; -import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; -import tiff from '@cpp.js/package-tiff/cppjs.config.js'; -import webp from '@cpp.js/package-webp/cppjs.config.js'; -import zlib from '@cpp.js/package-zlib/cppjs.config.js'; - -export default { - general: { - name: 'gdal', - }, - export: { - type: 'cmake', - }, - dependencies: [ - expat, - geos, - geotiff, - iconv, - proj, - spatialite, - sqlite3, - tiff, - webp, - zlib, - ], - paths: { - config: import.meta.url, - base: '../..', - output: 'dist', - }, - platform: { - 'Android-arm64-v8a': { - data: { - 'share/gdal': 'gdal', - }, - env: { - GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', - DXF_FEATURE_LIMIT_PER_BLOCK: '-1', - GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', - // CPL_DEBUG: 'ON', - CPL_LOG_ERRORS: 'ON', - }, - }, - 'iOS-iphoneos': { - data: { - 'share/gdal': 'gdal', - }, - env: { - GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', - DXF_FEATURE_LIMIT_PER_BLOCK: '-1', - GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', - // CPL_DEBUG: 'ON', - CPL_LOG_ERRORS: 'ON', - }, - }, - 'Emscripten-x86_64-browser': { - data: { - 'share/gdal': '/usr/share/gdal', - }, - env: { - GDAL_DATA: '/usr/share/gdal', - DXF_FEATURE_LIMIT_PER_BLOCK: '-1', - GDAL_NUM_THREADS: '0', - GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', - // CPL_DEBUG: 'ON', - CPL_LOG_ERRORS: 'ON', - }, - }, - 'Emscripten-x86_64-node': { - data: { - 'share/gdal': 'gdal', - }, - env: { - GDAL_DATA: '_CPPJS_DATA_PATH_/gdal', - DXF_FEATURE_LIMIT_PER_BLOCK: '-1', - GDAL_NUM_THREADS: '0', - GDAL_ENABLE_DEPRECATED_DRIVER_GTM: 'YES', - // CPL_DEBUG: 'ON', - CPL_LOG_ERRORS: 'ON', - }, - }, - }, -}; diff --git a/packages/cppjs-package-proj/cppjs.config.js b/packages/cppjs-package-proj/cppjs.config.js deleted file mode 100644 index 2b68ffd4..00000000 --- a/packages/cppjs-package-proj/cppjs.config.js +++ /dev/null @@ -1,54 +0,0 @@ -import tiff from '@cpp.js/package-tiff/cppjs.config.js'; -import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; - -export default { - general: { - name: 'proj', - }, - export: { - type: 'cmake', - }, - dependencies: [ - tiff, - sqlite3, - ], - paths: { - config: import.meta.url, - base: '../..', - output: 'dist', - }, - platform: { - 'Emscripten-x86_64-browser': { - data: { - 'share/proj': '/usr/share/proj', - }, - env: { - PROJ_LIB: '/usr/share/proj', - }, - }, - 'Emscripten-x86_64-node': { - data: { - 'share/proj': 'proj', - }, - env: { - PROJ_LIB: '_CPPJS_DATA_PATH_/proj', - }, - }, - 'Android-arm64-v8a': { - data: { - 'share/proj': 'proj', - }, - env: { - PROJ_LIB: '_CPPJS_DATA_PATH_/proj', - }, - }, - 'iOS-iphoneos': { - data: { - 'share/proj': 'proj', - }, - env: { - PROJ_LIB: '_CPPJS_DATA_PATH_/proj', - }, - }, - }, -}; diff --git a/packages/cppjs-package-spatialite/cppjs.config.js b/packages/cppjs-package-spatialite/cppjs.config.js deleted file mode 100644 index 04d5b8df..00000000 --- a/packages/cppjs-package-spatialite/cppjs.config.js +++ /dev/null @@ -1,26 +0,0 @@ -import geos from '@cpp.js/package-geos/cppjs.config.js'; -import proj from '@cpp.js/package-proj/cppjs.config.js'; -import sqlite3 from '@cpp.js/package-sqlite3/cppjs.config.js'; -import zlib from '@cpp.js/package-zlib/cppjs.config.js'; -import iconv from '@cpp.js/package-iconv/cppjs.config.js'; - -export default { - general: { - name: 'spatialite', - }, - export: { - type: 'cmake', - }, - dependencies: [ - geos, - proj, - sqlite3, - zlib, - iconv, - ], - paths: { - config: import.meta.url, - base: '../..', - output: 'dist', - }, -}; diff --git a/packages/cppjs-package-sqlite3/CHANGELOG.md b/packages/cppjs-package-sqlite3/CHANGELOG.md deleted file mode 100644 index 9dc9e5c4..00000000 --- a/packages/cppjs-package-sqlite3/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -# @cpp.js/package-sqlite3 - -## 1.0.0 - -### Major Changes - -- 🚀 first stable release - -### Patch Changes - -- Updated dependencies - - @cpp.js/package-zlib@1.0.0 - -## 1.0.0-beta.25 - -### Patch Changes - -- chore: add initial version of CHANGELOGS files -- Updated dependencies - - @cpp.js/package-zlib@1.0.0-beta.29 diff --git a/packages/cppjs-package-sqlite3/cppjs-package-sqlite3.podspec b/packages/cppjs-package-sqlite3/cppjs-package-sqlite3.podspec deleted file mode 100644 index b04be5a4..00000000 --- a/packages/cppjs-package-sqlite3/cppjs-package-sqlite3.podspec +++ /dev/null @@ -1,13 +0,0 @@ -require "json" -package = JSON.parse(File.read(File.join(__dir__, "package.json"))) - -Pod::Spec.new do |s| - s.module_name = "sqlite3" - s.name = "cppjs-package-sqlite3" - s.version = package["nativeVersion"] - s.summary = "SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine." - s.homepage = "https://www.sqlite.org" - s.author = "SQLite Authors" - s.source = { :http => "https://cpp.js.org" } - s.vendored_frameworks = 'z.xcframework', 'sqlite3.xcframework' -end diff --git a/packages/cppjs-package-zlib/cppjs-package-zlib.podspec b/packages/cppjs-package-zlib/cppjs-package-zlib.podspec deleted file mode 100644 index 4bc999f1..00000000 --- a/packages/cppjs-package-zlib/cppjs-package-zlib.podspec +++ /dev/null @@ -1,13 +0,0 @@ -require "json" -package = JSON.parse(File.read(File.join(__dir__, "package.json"))) - -Pod::Spec.new do |s| - s.module_name = "z" - s.name = "cppjs-package-zlib" - s.version = package["nativeVersion"] - s.summary = "A Massively Spiffy Yet Delicately Unobtrusive Compression Library" - s.homepage = "https://www.zlib.net/" - s.author = "ZLIB Authors" - s.source = { :http => "https://cpp.js.org" } - s.vendored_frameworks = 'z.xcframework' -end diff --git a/packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json b/packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json deleted file mode 100644 index 4ed91789..00000000 --- a/packages/cppjs-sample-mobile-reactnative-cli/ci/.cppjs/cache.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "hashes": { - "/Users/runner/work/cpp.js/cpp.js/packages/cppjs-sample-mobile-reactnative-cli/src/native/native.h": "d105082c6e8c8652ea461e161c501e824b6b625f7b819490102c5c0699744249", - "/Users/runner/work/cpp.js/cpp.js/packages/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i": "eab7d231467438ee3e5f5af1c3ae64919c0514393461653981fb40f26b5edad3" - }, - "interfaces": { - "/Users/runner/work/cpp.js/cpp.js/packages/cppjs-sample-mobile-reactnative-cli/src/native/native.h": "/Users/runner/work/cpp.js/cpp.js/packages/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i" - }, - "bridges": { - "/Users/runner/work/cpp.js/cpp.js/packages/cppjs-sample-mobile-reactnative-cli/.cppjs/build/interface/native.i": "/Users/runner/work/cpp.js/cpp.js/packages/cppjs-sample-mobile-reactnative-cli/.cppjs/build/bridge/native.i.cpp" - } -} diff --git a/packages/cppjs-sample-web-vanilla/src/native/native.cpp b/packages/cppjs-sample-web-vanilla/src/native/native.cpp deleted file mode 100644 index 516d581c..00000000 --- a/packages/cppjs-sample-web-vanilla/src/native/native.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "native.h" -#include - -std::string Native::sample() { - auto firstMatrix = std::make_shared(9, 1); - auto secondMatrix = std::make_shared(9, 2); - auto resultStr = std::to_string(firstMatrix->multiple(secondMatrix)->get(0)); - return "J₃ * (2*J₃) = " + resultStr + "*J₃"; -} diff --git a/packages/cppjs-sample-web-vue-vite/src/native/native.cpp b/packages/cppjs-sample-web-vue-vite/src/native/native.cpp deleted file mode 100644 index 516d581c..00000000 --- a/packages/cppjs-sample-web-vue-vite/src/native/native.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "native.h" -#include - -std::string Native::sample() { - auto firstMatrix = std::make_shared(9, 1); - auto secondMatrix = std::make_shared(9, 2); - auto resultStr = std::to_string(firstMatrix->multiple(secondMatrix)->get(0)); - return "J₃ * (2*J₃) = " + resultStr + "*J₃"; -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77668327..17a0a831 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 1.49.1 cpp.js: specifier: workspace:^ - version: link:packages/cpp.js + version: link:cppjs-core/cpp.js eslint: specifier: ^9.17.0 version: 9.17.0(jiti@1.21.7) @@ -30,7 +30,7 @@ importers: specifier: ^3.4.2 version: 3.4.2 - packages/cpp.js: + cppjs-core/cpp.js: dependencies: '@rollup/plugin-commonjs': specifier: ^28.0.2 @@ -66,44 +66,44 @@ importers: specifier: ^2.0.1 version: 2.0.1 - packages/cppjs-core-create-app: + cppjs-core/cppjs-core-create-app: dependencies: '@cpp.js/sample-backend-nodejs-wasm': specifier: workspace:^ - version: link:../cppjs-sample-backend-nodejs-wasm + version: link:../../cppjs-samples/cppjs-sample-backend-nodejs-wasm '@cpp.js/sample-cloud-cloudflare-worker': specifier: workspace:^ - version: link:../cppjs-sample-cloud-cloudflare-worker + version: link:../../cppjs-samples/cppjs-sample-cloud-cloudflare-worker '@cpp.js/sample-lib-cmake': specifier: workspace:^ - version: link:../cppjs-sample-lib-cmake + version: link:../../cppjs-samples/cppjs-sample-lib-cmake '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ - version: link:../cppjs-sample-lib-prebuilt-matrix + version: link:../../cppjs-samples/cppjs-sample-lib-prebuilt-matrix '@cpp.js/sample-lib-source': specifier: workspace:^ - version: link:../cppjs-sample-lib-source + version: link:../../cppjs-samples/cppjs-sample-lib-source '@cpp.js/sample-mobile-reactnative-cli': specifier: workspace:^ - version: link:../cppjs-sample-mobile-reactnative-cli + version: link:../../cppjs-samples/cppjs-sample-mobile-reactnative-cli '@cpp.js/sample-mobile-reactnative-expo': specifier: 1.0.1 version: 1.0.1(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(expo-modules-autolinking@1.11.3)(metro@0.81.0)(typescript@5.7.3) '@cpp.js/sample-web-react-rspack': specifier: workspace:^ - version: link:../cppjs-sample-web-react-rspack + version: link:../../cppjs-samples/cppjs-sample-web-react-rspack '@cpp.js/sample-web-react-vite': specifier: workspace:^ - version: link:../cppjs-sample-web-react-vite + version: link:../../cppjs-samples/cppjs-sample-web-react-vite '@cpp.js/sample-web-svelte-vite': specifier: workspace:^ - version: link:../cppjs-sample-web-svelte-vite + version: link:../../cppjs-samples/cppjs-sample-web-svelte-vite '@cpp.js/sample-web-vanilla': specifier: workspace:^ - version: link:../cppjs-sample-web-vanilla + version: link:../../cppjs-samples/cppjs-sample-web-vanilla '@cpp.js/sample-web-vue-vite': specifier: workspace:^ - version: link:../cppjs-sample-web-vue-vite + version: link:../../cppjs-samples/cppjs-sample-web-vue-vite cpp.js: specifier: workspace:^ version: link:../cpp.js @@ -120,9 +120,9 @@ importers: specifier: ^1.2.2 version: 1.2.2 - packages/cppjs-core-docker: {} + cppjs-core/cppjs-core-docker: {} - packages/cppjs-core-embind-jsi: + cppjs-core/cppjs-core-embind-jsi: dependencies: '@babel/runtime': specifier: '*' @@ -131,261 +131,2097 @@ importers: specifier: '*' version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.18)(react@19.0.0) - packages/cppjs-package-expat: + cppjs-extensions/cppjs-extension-sample: {} + + cppjs-packages/cppjs-package-curl/cppjs-package-curl: devDependencies: + '@cpp.js/package-curl-android': + specifier: workspace:^ + version: link:../cppjs-package-curl-android + '@cpp.js/package-curl-ios': + specifier: workspace:^ + version: link:../cppjs-package-curl-ios + '@cpp.js/package-curl-wasm': + specifier: workspace:^ + version: link:../cppjs-package-curl-wasm cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-gdal: + cppjs-packages/cppjs-package-curl/cppjs-package-curl-android: dependencies: - '@cpp.js/package-expat': + '@cpp.js/package-openssl-android': specifier: workspace:^ - version: link:../cppjs-package-expat - '@cpp.js/package-geos': + version: link:../../cppjs-package-openssl/cppjs-package-openssl-android + devDependencies: + cpp.js: specifier: workspace:^ - version: link:../cppjs-package-geos - '@cpp.js/package-geotiff': + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-curl/cppjs-package-curl-android-multithread: + dependencies: + '@cpp.js/package-openssl-android-multithread': specifier: workspace:^ - version: link:../cppjs-package-geotiff - '@cpp.js/package-iconv': + version: link:../../cppjs-package-openssl/cppjs-package-openssl-android-multithread + devDependencies: + cpp.js: specifier: workspace:^ - version: link:../cppjs-package-iconv - '@cpp.js/package-proj': + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios: + dependencies: + '@cpp.js/package-openssl-ios': specifier: workspace:^ - version: link:../cppjs-package-proj - '@cpp.js/package-spatialite': + version: link:../../cppjs-package-openssl/cppjs-package-openssl-ios + devDependencies: + cpp.js: specifier: workspace:^ - version: link:../cppjs-package-spatialite - '@cpp.js/package-sqlite3': + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-curl/cppjs-package-curl-ios-multithread: + dependencies: + '@cpp.js/package-openssl-ios-multithread': specifier: workspace:^ - version: link:../cppjs-package-sqlite3 - '@cpp.js/package-tiff': + version: link:../../cppjs-package-openssl/cppjs-package-openssl-ios-multithread + devDependencies: + cpp.js: specifier: workspace:^ - version: link:../cppjs-package-tiff - '@cpp.js/package-webp': + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread: + devDependencies: + '@cpp.js/package-curl-android-multithread': specifier: workspace:^ - version: link:../cppjs-package-webp - '@cpp.js/package-zlib': + version: link:../cppjs-package-curl-android-multithread + '@cpp.js/package-curl-ios-multithread': specifier: workspace:^ - version: link:../cppjs-package-zlib + version: link:../cppjs-package-curl-ios-multithread + '@cpp.js/package-curl-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-curl-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm: + dependencies: + '@cpp.js/package-openssl-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-openssl/cppjs-package-openssl-wasm devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-geos: + cppjs-packages/cppjs-package-curl/cppjs-package-curl-wasm-multithread: + dependencies: + '@cpp.js/package-openssl-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-openssl/cppjs-package-openssl-wasm-multithread devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat: + devDependencies: + '@cpp.js/package-expat-android': + specifier: workspace:^ + version: link:../cppjs-package-expat-android + '@cpp.js/package-expat-ios': + specifier: workspace:^ + version: link:../cppjs-package-expat-ios + '@cpp.js/package-expat-wasm': + specifier: workspace:^ + version: link:../cppjs-package-expat-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat-android: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat-android-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat-ios-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread: + devDependencies: + '@cpp.js/package-expat-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-expat-android-multithread + '@cpp.js/package-expat-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-expat-ios-multithread + '@cpp.js/package-expat-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-expat-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-expat/cppjs-package-expat-wasm-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-geotiff: + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal: + devDependencies: + '@cpp.js/package-gdal-android': + specifier: workspace:^ + version: link:../cppjs-package-gdal-android + '@cpp.js/package-gdal-ios': + specifier: workspace:^ + version: link:../cppjs-package-gdal-ios + '@cpp.js/package-gdal-wasm': + specifier: workspace:^ + version: link:../cppjs-package-gdal-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android: dependencies: - '@cpp.js/package-proj': + '@cpp.js/package-expat-android': specifier: workspace:^ - version: link:../cppjs-package-proj - '@cpp.js/package-tiff': + version: link:../../cppjs-package-expat/cppjs-package-expat-android + '@cpp.js/package-geos-android': specifier: workspace:^ - version: link:../cppjs-package-tiff - '@cpp.js/package-zlib': + version: link:../../cppjs-package-geos/cppjs-package-geos-android + '@cpp.js/package-geotiff-android': + specifier: workspace:^ + version: link:../../cppjs-package-geotiff/cppjs-package-geotiff-android + '@cpp.js/package-iconv-android': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-android + '@cpp.js/package-proj-android': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-android + '@cpp.js/package-spatialite-android': + specifier: workspace:^ + version: link:../../cppjs-package-spatialite/cppjs-package-spatialite-android + '@cpp.js/package-sqlite3-android': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-android + '@cpp.js/package-tiff-android': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-android + '@cpp.js/package-webp-android': specifier: workspace:^ - version: link:../cppjs-package-zlib + version: link:../../cppjs-package-webp/cppjs-package-webp-android + '@cpp.js/package-zlib-android': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-iconv: + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-android-multithread: + dependencies: + '@cpp.js/package-expat-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-expat/cppjs-package-expat-android-multithread + '@cpp.js/package-geos-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-android-multithread + '@cpp.js/package-geotiff-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-geotiff/cppjs-package-geotiff-android-multithread + '@cpp.js/package-iconv-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-android-multithread + '@cpp.js/package-proj-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-android-multithread + '@cpp.js/package-spatialite-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-spatialite/cppjs-package-spatialite-android-multithread + '@cpp.js/package-sqlite3-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread + '@cpp.js/package-tiff-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-android-multithread + '@cpp.js/package-webp-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-webp/cppjs-package-webp-android-multithread + '@cpp.js/package-zlib-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android-multithread devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-proj: + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios: dependencies: - '@cpp.js/package-sqlite3': + '@cpp.js/package-expat-ios': specifier: workspace:^ - version: link:../cppjs-package-sqlite3 - '@cpp.js/package-tiff': + version: link:../../cppjs-package-expat/cppjs-package-expat-ios + '@cpp.js/package-geos-ios': specifier: workspace:^ - version: link:../cppjs-package-tiff + version: link:../../cppjs-package-geos/cppjs-package-geos-ios + '@cpp.js/package-geotiff-ios': + specifier: workspace:^ + version: link:../../cppjs-package-geotiff/cppjs-package-geotiff-ios + '@cpp.js/package-iconv-ios': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-ios + '@cpp.js/package-proj-ios': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-ios + '@cpp.js/package-spatialite-ios': + specifier: workspace:^ + version: link:../../cppjs-package-spatialite/cppjs-package-spatialite-ios + '@cpp.js/package-sqlite3-ios': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-ios + '@cpp.js/package-tiff-ios': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-ios + '@cpp.js/package-webp-ios': + specifier: workspace:^ + version: link:../../cppjs-package-webp/cppjs-package-webp-ios + '@cpp.js/package-zlib-ios': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-spatialite: + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-ios-multithread: dependencies: - '@cpp.js/package-geos': + '@cpp.js/package-expat-ios-multithread': specifier: workspace:^ - version: link:../cppjs-package-geos - '@cpp.js/package-iconv': + version: link:../../cppjs-package-expat/cppjs-package-expat-ios-multithread + '@cpp.js/package-geos-ios-multithread': specifier: workspace:^ - version: link:../cppjs-package-iconv - '@cpp.js/package-proj': + version: link:../../cppjs-package-geos/cppjs-package-geos-ios-multithread + '@cpp.js/package-geotiff-ios-multithread': specifier: workspace:^ - version: link:../cppjs-package-proj - '@cpp.js/package-sqlite3': + version: link:../../cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread + '@cpp.js/package-iconv-ios-multithread': specifier: workspace:^ - version: link:../cppjs-package-sqlite3 - '@cpp.js/package-zlib': + version: link:../../cppjs-package-iconv/cppjs-package-iconv-ios-multithread + '@cpp.js/package-proj-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-ios-multithread + '@cpp.js/package-spatialite-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread + '@cpp.js/package-sqlite3-ios-multithread': specifier: workspace:^ - version: link:../cppjs-package-zlib + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread + '@cpp.js/package-tiff-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-ios-multithread + '@cpp.js/package-webp-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-webp/cppjs-package-webp-ios-multithread + '@cpp.js/package-zlib-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios-multithread devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread: + devDependencies: + '@cpp.js/package-gdal-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-gdal-android-multithread + '@cpp.js/package-gdal-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-gdal-ios-multithread + '@cpp.js/package-gdal-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-gdal-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-sqlite3: + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm: dependencies: - '@cpp.js/package-zlib': + '@cpp.js/package-expat-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-expat/cppjs-package-expat-wasm + '@cpp.js/package-geos-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-wasm + '@cpp.js/package-geotiff-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-geotiff/cppjs-package-geotiff-wasm + '@cpp.js/package-iconv-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-wasm + '@cpp.js/package-proj-wasm': specifier: workspace:^ - version: link:../cppjs-package-zlib + version: link:../../cppjs-package-proj/cppjs-package-proj-wasm + '@cpp.js/package-spatialite-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-spatialite/cppjs-package-spatialite-wasm + '@cpp.js/package-sqlite3-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-wasm + '@cpp.js/package-tiff-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-wasm + '@cpp.js/package-webp-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-webp/cppjs-package-webp-wasm + '@cpp.js/package-zlib-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-tiff: + cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm-multithread: dependencies: - '@cpp.js/package-zlib': + '@cpp.js/package-expat-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-expat/cppjs-package-expat-wasm-multithread + '@cpp.js/package-geos-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-wasm-multithread + '@cpp.js/package-geotiff-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread + '@cpp.js/package-iconv-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-wasm-multithread + '@cpp.js/package-proj-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-wasm-multithread + '@cpp.js/package-spatialite-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread + '@cpp.js/package-sqlite3-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread + '@cpp.js/package-tiff-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-wasm-multithread + '@cpp.js/package-webp-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-webp/cppjs-package-webp-wasm-multithread + '@cpp.js/package-zlib-wasm-multithread': specifier: workspace:^ - version: link:../cppjs-package-zlib + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm-multithread devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-webp: + cppjs-packages/cppjs-package-geos/cppjs-package-geos: devDependencies: + '@cpp.js/package-geos-android': + specifier: workspace:^ + version: link:../cppjs-package-geos-android + '@cpp.js/package-geos-ios': + specifier: workspace:^ + version: link:../cppjs-package-geos-ios + '@cpp.js/package-geos-wasm': + specifier: workspace:^ + version: link:../cppjs-package-geos-wasm cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js - packages/cppjs-package-zlib: + cppjs-packages/cppjs-package-geos/cppjs-package-geos-android: devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geos/cppjs-package-geos-android-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geos/cppjs-package-geos-ios-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread: + devDependencies: + '@cpp.js/package-geos-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-geos-android-multithread + '@cpp.js/package-geos-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-geos-ios-multithread + '@cpp.js/package-geos-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-geos-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geos/cppjs-package-geos-wasm-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff: + devDependencies: + '@cpp.js/package-geotiff-android': + specifier: workspace:^ + version: link:../cppjs-package-geotiff-android + '@cpp.js/package-geotiff-ios': + specifier: workspace:^ + version: link:../cppjs-package-geotiff-ios + '@cpp.js/package-geotiff-wasm': + specifier: workspace:^ + version: link:../cppjs-package-geotiff-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js - packages/cppjs-plugin-metro: + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android: dependencies: - '@babel/runtime': - specifier: ^7.20.7 - version: 7.26.0 - '@react-native/metro-babel-transformer': - specifier: ^0.73.15 - version: 0.73.15(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@cpp.js/package-proj-android': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-android + '@cpp.js/package-tiff-android': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-android + '@cpp.js/package-zlib-android': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android + devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js - metro: - specifier: '*' - version: 0.81.0 - upath: - specifier: ^2.0.1 - version: 2.0.1 + version: link:../../../cppjs-core/cpp.js - packages/cppjs-plugin-react-native: + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-android-multithread: dependencies: - '@babel/runtime': - specifier: ^7.20.7 - version: 7.26.0 - '@cpp.js/core-embind-jsi': + '@cpp.js/package-proj-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-android-multithread + '@cpp.js/package-tiff-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-android-multithread + '@cpp.js/package-zlib-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios: + dependencies: + '@cpp.js/package-proj-ios': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-ios + '@cpp.js/package-tiff-ios': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-ios + '@cpp.js/package-zlib-ios': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios-multithread: + dependencies: + '@cpp.js/package-proj-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-ios-multithread + '@cpp.js/package-tiff-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-ios-multithread + '@cpp.js/package-zlib-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread: + devDependencies: + '@cpp.js/package-geotiff-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-geotiff-android-multithread + '@cpp.js/package-geotiff-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-geotiff-ios-multithread + '@cpp.js/package-geotiff-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-geotiff-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm: + dependencies: + '@cpp.js/package-proj-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-wasm + '@cpp.js/package-tiff-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-wasm + '@cpp.js/package-zlib-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-wasm-multithread: + dependencies: + '@cpp.js/package-proj-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-wasm-multithread + '@cpp.js/package-tiff-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-wasm-multithread + '@cpp.js/package-zlib-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv: + devDependencies: + '@cpp.js/package-iconv-android': + specifier: workspace:^ + version: link:../cppjs-package-iconv-android + '@cpp.js/package-iconv-ios': + specifier: workspace:^ + version: link:../cppjs-package-iconv-ios + '@cpp.js/package-iconv-wasm': + specifier: workspace:^ + version: link:../cppjs-package-iconv-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-android-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-ios-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread: + devDependencies: + '@cpp.js/package-iconv-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-iconv-android-multithread + '@cpp.js/package-iconv-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-iconv-ios-multithread + '@cpp.js/package-iconv-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-iconv-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-wasm-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl: + devDependencies: + '@cpp.js/package-openssl-android': + specifier: workspace:^ + version: link:../cppjs-package-openssl-android + '@cpp.js/package-openssl-ios': + specifier: workspace:^ + version: link:../cppjs-package-openssl-ios + '@cpp.js/package-openssl-wasm': + specifier: workspace:^ + version: link:../cppjs-package-openssl-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-android-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-ios-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread: + devDependencies: + '@cpp.js/package-openssl-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-openssl-android-multithread + '@cpp.js/package-openssl-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-openssl-ios-multithread + '@cpp.js/package-openssl-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-openssl-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-wasm-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj: + devDependencies: + '@cpp.js/package-proj-android': + specifier: workspace:^ + version: link:../cppjs-package-proj-android + '@cpp.js/package-proj-ios': + specifier: workspace:^ + version: link:../cppjs-package-proj-ios + '@cpp.js/package-proj-wasm': + specifier: workspace:^ + version: link:../cppjs-package-proj-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj-android: + dependencies: + '@cpp.js/package-sqlite3-android': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-android + '@cpp.js/package-tiff-android': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-android + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj-android-multithread: + dependencies: + '@cpp.js/package-sqlite3-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread + '@cpp.js/package-tiff-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-android-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios: + dependencies: + '@cpp.js/package-sqlite3-ios': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-ios + '@cpp.js/package-tiff-ios': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-ios + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj-ios-multithread: + dependencies: + '@cpp.js/package-sqlite3-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread + '@cpp.js/package-tiff-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-ios-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread: + devDependencies: + '@cpp.js/package-proj-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-proj-android-multithread + '@cpp.js/package-proj-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-proj-ios-multithread + '@cpp.js/package-proj-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-proj-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm: + dependencies: + '@cpp.js/package-sqlite3-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-wasm + '@cpp.js/package-tiff-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-wasm + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-proj/cppjs-package-proj-wasm-multithread: + dependencies: + '@cpp.js/package-sqlite3-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread + '@cpp.js/package-tiff-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-tiff/cppjs-package-tiff-wasm-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite: + devDependencies: + '@cpp.js/package-spatialite-android': + specifier: workspace:^ + version: link:../cppjs-package-spatialite-android + '@cpp.js/package-spatialite-ios': + specifier: workspace:^ + version: link:../cppjs-package-spatialite-ios + '@cpp.js/package-spatialite-wasm': + specifier: workspace:^ + version: link:../cppjs-package-spatialite-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android: + dependencies: + '@cpp.js/package-geos-android': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-android + '@cpp.js/package-iconv-android': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-android + '@cpp.js/package-proj-android': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-android + '@cpp.js/package-sqlite3-android': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-android + '@cpp.js/package-zlib-android': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-android-multithread: + dependencies: + '@cpp.js/package-geos-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-android-multithread + '@cpp.js/package-iconv-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-android-multithread + '@cpp.js/package-proj-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-android-multithread + '@cpp.js/package-sqlite3-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread + '@cpp.js/package-zlib-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios: + dependencies: + '@cpp.js/package-geos-ios': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-ios + '@cpp.js/package-iconv-ios': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-ios + '@cpp.js/package-proj-ios': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-ios + '@cpp.js/package-sqlite3-ios': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-ios + '@cpp.js/package-zlib-ios': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-ios-multithread: + dependencies: + '@cpp.js/package-geos-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-ios-multithread + '@cpp.js/package-iconv-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-ios-multithread + '@cpp.js/package-proj-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-ios-multithread + '@cpp.js/package-sqlite3-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread + '@cpp.js/package-zlib-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread: + devDependencies: + '@cpp.js/package-spatialite-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-spatialite-android-multithread + '@cpp.js/package-spatialite-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-spatialite-ios-multithread + '@cpp.js/package-spatialite-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-spatialite-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm: + dependencies: + '@cpp.js/package-geos-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-wasm + '@cpp.js/package-iconv-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-wasm + '@cpp.js/package-proj-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-wasm + '@cpp.js/package-sqlite3-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-wasm + '@cpp.js/package-zlib-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-wasm-multithread: + dependencies: + '@cpp.js/package-geos-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-geos/cppjs-package-geos-wasm-multithread + '@cpp.js/package-iconv-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-iconv/cppjs-package-iconv-wasm-multithread + '@cpp.js/package-proj-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-proj/cppjs-package-proj-wasm-multithread + '@cpp.js/package-sqlite3-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread + '@cpp.js/package-zlib-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3: + devDependencies: + '@cpp.js/package-sqlite3-android': + specifier: workspace:^ + version: link:../cppjs-package-sqlite3-android + '@cpp.js/package-sqlite3-ios': + specifier: workspace:^ + version: link:../cppjs-package-sqlite3-ios + '@cpp.js/package-sqlite3-wasm': + specifier: workspace:^ + version: link:../cppjs-package-sqlite3-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android: + dependencies: + '@cpp.js/package-zlib-android': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android-multithread: + dependencies: + '@cpp.js/package-zlib-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios: + dependencies: + '@cpp.js/package-zlib-ios': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios-multithread: + dependencies: + '@cpp.js/package-zlib-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread: + devDependencies: + '@cpp.js/package-sqlite3-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-sqlite3-android-multithread + '@cpp.js/package-sqlite3-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-sqlite3-ios-multithread + '@cpp.js/package-sqlite3-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-sqlite3-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm: + dependencies: + '@cpp.js/package-zlib-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm-multithread: + dependencies: + '@cpp.js/package-zlib-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff: + devDependencies: + '@cpp.js/package-tiff-android': + specifier: workspace:^ + version: link:../cppjs-package-tiff-android + '@cpp.js/package-tiff-ios': + specifier: workspace:^ + version: link:../cppjs-package-tiff-ios + '@cpp.js/package-tiff-wasm': + specifier: workspace:^ + version: link:../cppjs-package-tiff-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android: + dependencies: + '@cpp.js/package-zlib-android': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-android-multithread: + dependencies: + '@cpp.js/package-zlib-android-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-android-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios: + dependencies: + '@cpp.js/package-zlib-ios': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-ios-multithread: + dependencies: + '@cpp.js/package-zlib-ios-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-ios-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread: + devDependencies: + '@cpp.js/package-tiff-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-tiff-android-multithread + '@cpp.js/package-tiff-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-tiff-ios-multithread + '@cpp.js/package-tiff-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-tiff-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm: + dependencies: + '@cpp.js/package-zlib-wasm': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-wasm-multithread: + dependencies: + '@cpp.js/package-zlib-wasm-multithread': + specifier: workspace:^ + version: link:../../cppjs-package-zlib/cppjs-package-zlib-wasm-multithread + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp: + devDependencies: + '@cpp.js/package-webp-android': + specifier: workspace:^ + version: link:../cppjs-package-webp-android + '@cpp.js/package-webp-ios': + specifier: workspace:^ + version: link:../cppjs-package-webp-ios + '@cpp.js/package-webp-wasm': + specifier: workspace:^ + version: link:../cppjs-package-webp-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp-android: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp-android-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp-ios-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread: + devDependencies: + '@cpp.js/package-webp-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-webp-android-multithread + '@cpp.js/package-webp-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-webp-ios-multithread + '@cpp.js/package-webp-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-webp-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-webp/cppjs-package-webp-wasm-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib: + devDependencies: + '@cpp.js/package-zlib-android': + specifier: workspace:^ + version: link:../cppjs-package-zlib-android + '@cpp.js/package-zlib-ios': + specifier: workspace:^ + version: link:../cppjs-package-zlib-ios + '@cpp.js/package-zlib-wasm': + specifier: workspace:^ + version: link:../cppjs-package-zlib-wasm + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-android-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-ios-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread: + devDependencies: + '@cpp.js/package-zlib-android-multithread': + specifier: workspace:^ + version: link:../cppjs-package-zlib-android-multithread + '@cpp.js/package-zlib-ios-multithread': + specifier: workspace:^ + version: link:../cppjs-package-zlib-ios-multithread + '@cpp.js/package-zlib-wasm-multithread': + specifier: workspace:^ + version: link:../cppjs-package-zlib-wasm-multithread + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-wasm-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../../cppjs-core/cpp.js + + cppjs-plugins/cppjs-plugin-metro: + dependencies: + '@babel/runtime': + specifier: ^7.20.7 + version: 7.26.0 + '@react-native/metro-babel-transformer': + specifier: ^0.73.15 + version: 0.73.15(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + metro: + specifier: '*' + version: 0.81.0 + upath: + specifier: ^2.0.1 + version: 2.0.1 + + cppjs-plugins/cppjs-plugin-react-native: + dependencies: + '@babel/runtime': + specifier: ^7.20.7 + version: 7.26.0 + '@cpp.js/core-embind-jsi': + specifier: workspace:^ + version: link:../../cppjs-core/cppjs-core-embind-jsi + '@cpp.js/plugin-metro': + specifier: workspace:^ + version: link:../cppjs-plugin-metro + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + metro: + specifier: '*' + version: 0.81.0 + react-native: + specifier: '*' + version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.18)(react@19.0.0) + upath: + specifier: ^2.0.1 + version: 2.0.1 + + cppjs-plugins/cppjs-plugin-react-native-ios-helper: {} + + cppjs-plugins/cppjs-plugin-rollup: + dependencies: + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + + cppjs-plugins/cppjs-plugin-vite: + dependencies: + '@cpp.js/plugin-rollup': + specifier: workspace:^ + version: link:../cppjs-plugin-rollup + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + + cppjs-plugins/cppjs-plugin-webpack: + dependencies: + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + + cppjs-plugins/cppjs-plugin-webpack-loader: + dependencies: + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + + cppjs-samples/cppjs-playground-backend-nodejs: + dependencies: + '@cpp.js/package-curl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-curl/cppjs-package-curl + '@cpp.js/package-expat': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat + '@cpp.js/package-gdal': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal + '@cpp.js/package-geos': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos + '@cpp.js/package-geotiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff + '@cpp.js/package-iconv': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv + '@cpp.js/package-openssl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl + '@cpp.js/package-proj': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj + '@cpp.js/package-spatialite': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite + '@cpp.js/package-sqlite3': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3 + '@cpp.js/package-tiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff + '@cpp.js/package-webp': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp + '@cpp.js/package-zlib': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib + '@cpp.js/sample-lib-prebuilt-matrix': + specifier: workspace:^ + version: link:../cppjs-sample-lib-prebuilt-matrix + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + ws: + specifier: 8.18.3 + version: 8.18.3 + xhr2: + specifier: ^0.2.1 + version: 0.2.1 + + cppjs-samples/cppjs-playground-backend-nodejs-multithread: + dependencies: + '@cpp.js/package-curl-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread + '@cpp.js/package-expat-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread + '@cpp.js/package-gdal-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread + '@cpp.js/package-geos-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread + '@cpp.js/package-geotiff-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread + '@cpp.js/package-iconv-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread + '@cpp.js/package-openssl-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread + '@cpp.js/package-proj-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread + '@cpp.js/package-spatialite-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread + '@cpp.js/package-sqlite3-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread + '@cpp.js/package-tiff-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread + '@cpp.js/package-webp-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread + '@cpp.js/package-zlib-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + ws: + specifier: 8.18.3 + version: 8.18.3 + xhr2: + specifier: ^0.2.1 + version: 0.2.1 + + cppjs-samples/cppjs-playground-cloud-cloudflare-worker: + dependencies: + '@cpp.js/package-expat': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat + '@cpp.js/package-gdal': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal + '@cpp.js/package-geos': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos + '@cpp.js/package-geotiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff + '@cpp.js/package-iconv': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv + '@cpp.js/package-openssl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl + '@cpp.js/package-proj': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj + '@cpp.js/package-spatialite': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite + '@cpp.js/package-sqlite3': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3 + '@cpp.js/package-tiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff + '@cpp.js/package-webp': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp + '@cpp.js/package-zlib': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + devDependencies: + '@playwright/test': + specifier: ^1.49.1 + version: 1.49.1 + wrangler: + specifier: ^4.50.0 + version: 4.50.0 + + cppjs-samples/cppjs-playground-mobile-reactnative-cli: + dependencies: + '@cpp.js/core-embind-jsi': + specifier: workspace:^ + version: link:../../cppjs-core/cppjs-core-embind-jsi + '@cpp.js/package-curl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-curl/cppjs-package-curl + '@cpp.js/package-expat': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat + '@cpp.js/package-gdal': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal + '@cpp.js/package-geos': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos + '@cpp.js/package-geotiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff + '@cpp.js/package-iconv': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv + '@cpp.js/package-openssl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl + '@cpp.js/package-proj': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj + '@cpp.js/package-spatialite': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite + '@cpp.js/package-sqlite3': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3 + '@cpp.js/package-tiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff + '@cpp.js/package-webp': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp + '@cpp.js/package-zlib': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib + '@cpp.js/plugin-metro': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-metro + '@cpp.js/plugin-react-native': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-react-native + '@cpp.js/plugin-react-native-ios-helper': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-react-native-ios-helper + '@cpp.js/sample-lib-prebuilt-matrix': + specifier: workspace:^ + version: link:../cppjs-sample-lib-prebuilt-matrix + react: + specifier: 18.3.1 + version: 18.3.1 + react-native: + specifier: 0.76.5 + version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.18)(react@18.3.1) + devDependencies: + '@babel/core': + specifier: ^7.25.2 + version: 7.26.0 + '@babel/preset-env': + specifier: ^7.25.3 + version: 7.26.0(@babel/core@7.26.0) + '@babel/runtime': + specifier: ^7.25.0 + version: 7.26.0 + '@react-native-community/cli': + specifier: 15.0.1 + version: 15.0.1(typescript@5.0.4) + '@react-native-community/cli-platform-android': + specifier: 15.0.1 + version: 15.0.1 + '@react-native-community/cli-platform-ios': + specifier: 15.0.1 + version: 15.0.1 + '@react-native/babel-preset': + specifier: 0.76.5 + version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/eslint-config': + specifier: 0.76.5 + version: 0.76.5(eslint@8.57.1)(jest@29.7.0(@types/node@22.10.2))(prettier@2.8.8)(typescript@5.0.4) + '@react-native/gradle-plugin': + specifier: 0.76.5 + version: 0.76.5 + '@react-native/metro-config': + specifier: 0.76.5 + version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/typescript-config': + specifier: 0.76.5 + version: 0.76.5 + '@types/react': + specifier: ^18.2.6 + version: 18.3.18 + '@types/react-test-renderer': + specifier: ^18.0.0 + version: 18.3.1 + babel-jest: + specifier: ^29.6.3 + version: 29.7.0(@babel/core@7.26.0) + eslint: + specifier: ^8.19.0 + version: 8.57.1 + jest: + specifier: ^29.6.3 + version: 29.7.0(@types/node@22.10.2) + prettier: + specifier: 2.8.8 + version: 2.8.8 + react-test-renderer: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + typescript: + specifier: 5.0.4 + version: 5.0.4 + + cppjs-samples/cppjs-playground-mobile-reactnative-cli-multithread: + dependencies: + '@cpp.js/core-embind-jsi': + specifier: workspace:^ + version: link:../../cppjs-core/cppjs-core-embind-jsi + '@cpp.js/package-curl-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread + '@cpp.js/package-expat-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread + '@cpp.js/package-gdal-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread + '@cpp.js/package-geos-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread + '@cpp.js/package-geotiff-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread + '@cpp.js/package-iconv-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread + '@cpp.js/package-openssl-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread + '@cpp.js/package-proj-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread + '@cpp.js/package-spatialite-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread + '@cpp.js/package-sqlite3-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread + '@cpp.js/package-tiff-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread + '@cpp.js/package-webp-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread + '@cpp.js/package-zlib-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread + '@cpp.js/plugin-metro': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-metro + '@cpp.js/plugin-react-native': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-react-native + '@cpp.js/plugin-react-native-ios-helper': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-react-native-ios-helper + '@cpp.js/sample-lib-prebuilt-matrix-multithread': + specifier: workspace:^ + version: link:../cppjs-sample-lib-prebuilt-matrix-multithread + react: + specifier: 18.3.1 + version: 18.3.1 + react-native: + specifier: 0.76.5 + version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.18)(react@18.3.1) + devDependencies: + '@babel/core': + specifier: ^7.25.2 + version: 7.26.0 + '@babel/preset-env': + specifier: ^7.25.3 + version: 7.26.0(@babel/core@7.26.0) + '@babel/runtime': + specifier: ^7.25.0 + version: 7.26.0 + '@react-native-community/cli': + specifier: 15.0.1 + version: 15.0.1(typescript@5.0.4) + '@react-native-community/cli-platform-android': + specifier: 15.0.1 + version: 15.0.1 + '@react-native-community/cli-platform-ios': + specifier: 15.0.1 + version: 15.0.1 + '@react-native/babel-preset': + specifier: 0.76.5 + version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/eslint-config': + specifier: 0.76.5 + version: 0.76.5(eslint@8.57.1)(jest@29.7.0(@types/node@22.10.2))(prettier@2.8.8)(typescript@5.0.4) + '@react-native/gradle-plugin': + specifier: 0.76.5 + version: 0.76.5 + '@react-native/metro-config': + specifier: 0.76.5 + version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/typescript-config': + specifier: 0.76.5 + version: 0.76.5 + '@types/react': + specifier: ^18.2.6 + version: 18.3.18 + '@types/react-test-renderer': + specifier: ^18.0.0 + version: 18.3.1 + babel-jest: + specifier: ^29.6.3 + version: 29.7.0(@babel/core@7.26.0) + eslint: + specifier: ^8.19.0 + version: 8.57.1 + jest: + specifier: ^29.6.3 + version: 29.7.0(@types/node@22.10.2) + prettier: + specifier: 2.8.8 + version: 2.8.8 + react-test-renderer: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + typescript: + specifier: 5.0.4 + version: 5.0.4 + + cppjs-samples/cppjs-playground-web-rspack: + dependencies: + '@cpp.js/package-curl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-curl/cppjs-package-curl + '@cpp.js/package-expat': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat + '@cpp.js/package-gdal': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal + '@cpp.js/package-geos': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos + '@cpp.js/package-geotiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff + '@cpp.js/package-iconv': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv + '@cpp.js/package-openssl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl + '@cpp.js/package-proj': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj + '@cpp.js/package-spatialite': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite + '@cpp.js/package-sqlite3': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3 + '@cpp.js/package-tiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff + '@cpp.js/package-webp': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp + '@cpp.js/package-zlib': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib + '@cpp.js/plugin-webpack': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-webpack + '@cpp.js/plugin-webpack-loader': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-webpack-loader + '@cpp.js/sample-lib-prebuilt-matrix': + specifier: workspace:^ + version: link:../cppjs-sample-lib-prebuilt-matrix + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@playwright/test': + specifier: ^1.49.1 + version: 1.49.1 + '@rspack/cli': + specifier: ^1.1.8 + version: 1.1.8(@rspack/core@1.1.8)(@types/express@4.17.21)(webpack@5.97.1) + '@rspack/core': + specifier: ^1.1.8 + version: 1.1.8 + '@rspack/plugin-react-refresh': + specifier: ^1.0.1 + version: 1.0.1(react-refresh@0.16.0) + '@types/react': + specifier: ^19.0.2 + version: 19.0.2 + '@types/react-dom': + specifier: ^19.0.2 + version: 19.0.2(@types/react@19.0.2) + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + react-refresh: + specifier: ^0.16.0 + version: 0.16.0 + serve: + specifier: ^14.2.4 + version: 14.2.4 + + cppjs-samples/cppjs-playground-web-vanilla: + dependencies: + '@cpp.js/package-curl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-curl/cppjs-package-curl + '@cpp.js/package-expat': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat + '@cpp.js/package-gdal': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal + '@cpp.js/package-geos': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos + '@cpp.js/package-geotiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff + '@cpp.js/package-iconv': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv + '@cpp.js/package-openssl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl + '@cpp.js/package-proj': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj + '@cpp.js/package-spatialite': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite + '@cpp.js/package-sqlite3': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3 + '@cpp.js/package-tiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff + '@cpp.js/package-webp': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp + '@cpp.js/package-zlib': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib + '@cpp.js/sample-lib-prebuilt-matrix': + specifier: workspace:^ + version: link:../cppjs-sample-lib-prebuilt-matrix + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js + devDependencies: + '@playwright/test': + specifier: ^1.49.1 + version: 1.49.1 + serve: + specifier: ^14.2.4 + version: 14.2.4 + + cppjs-samples/cppjs-playground-web-vite: + dependencies: + '@cpp.js/package-expat': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat + '@cpp.js/package-gdal': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal + '@cpp.js/package-geos': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos + '@cpp.js/package-geotiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff + '@cpp.js/package-iconv': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv + '@cpp.js/package-openssl': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl + '@cpp.js/package-proj': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj + '@cpp.js/package-spatialite': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite + '@cpp.js/package-sqlite3': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3 + '@cpp.js/package-tiff': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff + '@cpp.js/package-webp': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp + '@cpp.js/package-zlib': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib + '@cpp.js/plugin-vite': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-vite + '@cpp.js/sample-lib-prebuilt-matrix': + specifier: workspace:^ + version: link:../cppjs-sample-lib-prebuilt-matrix + vue: + specifier: ^3.5.13 + version: 3.5.13(typescript@5.7.3) + devDependencies: + '@playwright/test': + specifier: ^1.49.1 + version: 1.49.1 + '@vitejs/plugin-vue': + specifier: ^5.2.1 + version: 5.2.1(vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) + vite: + specifier: ^6.0.5 + version: 6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1) + + cppjs-samples/cppjs-playground-web-vite-multithread: + dependencies: + '@cpp.js/package-curl-multithread': specifier: workspace:^ - version: link:../cppjs-core-embind-jsi - '@cpp.js/plugin-metro': + version: link:../../cppjs-packages/cppjs-package-curl/cppjs-package-curl-multithread + '@cpp.js/package-expat-multithread': specifier: workspace:^ - version: link:../cppjs-plugin-metro - cpp.js: + version: link:../../cppjs-packages/cppjs-package-expat/cppjs-package-expat-multithread + '@cpp.js/package-gdal-multithread': specifier: workspace:^ - version: link:../cpp.js - metro: - specifier: '*' - version: 0.81.0 - react-native: - specifier: '*' - version: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.18)(react@19.0.0) - upath: - specifier: ^2.0.1 - version: 2.0.1 - - packages/cppjs-plugin-react-native-ios-helper: {} - - packages/cppjs-plugin-rollup: - dependencies: - cpp.js: + version: link:../../cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-multithread + '@cpp.js/package-geos-multithread': specifier: workspace:^ - version: link:../cpp.js - - packages/cppjs-plugin-vite: - dependencies: - '@cpp.js/plugin-rollup': + version: link:../../cppjs-packages/cppjs-package-geos/cppjs-package-geos-multithread + '@cpp.js/package-geotiff-multithread': specifier: workspace:^ - version: link:../cppjs-plugin-rollup - cpp.js: + version: link:../../cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-multithread + '@cpp.js/package-iconv-multithread': specifier: workspace:^ - version: link:../cpp.js - - packages/cppjs-plugin-webpack: - dependencies: - cpp.js: + version: link:../../cppjs-packages/cppjs-package-iconv/cppjs-package-iconv-multithread + '@cpp.js/package-openssl-multithread': specifier: workspace:^ - version: link:../cpp.js - - packages/cppjs-plugin-webpack-loader: - dependencies: - cpp.js: + version: link:../../cppjs-packages/cppjs-package-openssl/cppjs-package-openssl-multithread + '@cpp.js/package-proj-multithread': specifier: workspace:^ - version: link:../cpp.js + version: link:../../cppjs-packages/cppjs-package-proj/cppjs-package-proj-multithread + '@cpp.js/package-spatialite-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-spatialite/cppjs-package-spatialite-multithread + '@cpp.js/package-sqlite3-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-multithread + '@cpp.js/package-tiff-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-tiff/cppjs-package-tiff-multithread + '@cpp.js/package-webp-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-webp/cppjs-package-webp-multithread + '@cpp.js/package-zlib-multithread': + specifier: workspace:^ + version: link:../../cppjs-packages/cppjs-package-zlib/cppjs-package-zlib-multithread + '@cpp.js/plugin-vite': + specifier: workspace:^ + version: link:../../cppjs-plugins/cppjs-plugin-vite + vue: + specifier: ^3.5.13 + version: 3.5.13(typescript@5.7.3) + devDependencies: + '@playwright/test': + specifier: ^1.49.1 + version: 1.49.1 + '@vitejs/plugin-vue': + specifier: ^5.2.1 + version: 5.2.1(vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) + vite: + specifier: ^6.0.5 + version: 6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1) - packages/cppjs-sample-backend-nodejs-wasm: + cppjs-samples/cppjs-sample-backend-nodejs-wasm: dependencies: '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ version: link:../cppjs-sample-lib-prebuilt-matrix cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../cppjs-core/cpp.js - packages/cppjs-sample-cloud-cloudflare-worker: + cppjs-samples/cppjs-sample-cloud-cloudflare-worker: dependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../cppjs-core/cpp.js devDependencies: '@playwright/test': specifier: ^1.49.1 version: 1.49.1 wrangler: - specifier: ^3.99.0 - version: 3.99.0 + specifier: ^3.107.3 + version: 3.107.3 - packages/cppjs-sample-lib-cmake: {} + cppjs-samples/cppjs-sample-lib-cmake: {} - packages/cppjs-sample-lib-prebuilt-matrix: + cppjs-samples/cppjs-sample-lib-prebuilt-matrix: devDependencies: cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../cppjs-core/cpp.js + + cppjs-samples/cppjs-sample-lib-prebuilt-matrix-multithread: + devDependencies: + cpp.js: + specifier: workspace:^ + version: link:../../cppjs-core/cpp.js - packages/cppjs-sample-lib-source: {} + cppjs-samples/cppjs-sample-lib-source: {} - packages/cppjs-sample-mobile-reactnative-cli: + cppjs-samples/cppjs-sample-mobile-reactnative-cli: dependencies: '@cpp.js/core-embind-jsi': specifier: workspace:^ - version: link:../cppjs-core-embind-jsi + version: link:../../cppjs-core/cppjs-core-embind-jsi '@cpp.js/plugin-metro': specifier: workspace:^ - version: link:../cppjs-plugin-metro + version: link:../../cppjs-plugins/cppjs-plugin-metro '@cpp.js/plugin-react-native': specifier: workspace:^ - version: link:../cppjs-plugin-react-native + version: link:../../cppjs-plugins/cppjs-plugin-react-native '@cpp.js/plugin-react-native-ios-helper': specifier: workspace:^ - version: link:../cppjs-plugin-react-native-ios-helper + version: link:../../cppjs-plugins/cppjs-plugin-react-native-ios-helper '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ version: link:../cppjs-sample-lib-prebuilt-matrix @@ -454,14 +2290,14 @@ importers: specifier: 5.0.4 version: 5.0.4 - packages/cppjs-sample-web-react-rspack: + cppjs-samples/cppjs-sample-web-react-rspack: dependencies: '@cpp.js/plugin-webpack': specifier: workspace:^ - version: link:../cppjs-plugin-webpack + version: link:../../cppjs-plugins/cppjs-plugin-webpack '@cpp.js/plugin-webpack-loader': specifier: workspace:^ - version: link:../cppjs-plugin-webpack-loader + version: link:../../cppjs-plugins/cppjs-plugin-webpack-loader '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ version: link:../cppjs-sample-lib-prebuilt-matrix @@ -500,11 +2336,11 @@ importers: specifier: ^14.2.4 version: 14.2.4 - packages/cppjs-sample-web-react-vite: + cppjs-samples/cppjs-sample-web-react-vite: dependencies: '@cpp.js/plugin-vite': specifier: workspace:^ - version: link:../cppjs-plugin-vite + version: link:../../cppjs-plugins/cppjs-plugin-vite '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ version: link:../cppjs-sample-lib-prebuilt-matrix @@ -549,11 +2385,11 @@ importers: specifier: ^6.0.5 version: 6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1) - packages/cppjs-sample-web-svelte-vite: + cppjs-samples/cppjs-sample-web-svelte-vite: dependencies: '@cpp.js/plugin-vite': specifier: workspace:^ - version: link:../cppjs-plugin-vite + version: link:../../cppjs-plugins/cppjs-plugin-vite '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ version: link:../cppjs-sample-lib-prebuilt-matrix @@ -571,14 +2407,14 @@ importers: specifier: ^6.0.5 version: 6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1) - packages/cppjs-sample-web-vanilla: + cppjs-samples/cppjs-sample-web-vanilla: dependencies: '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ version: link:../cppjs-sample-lib-prebuilt-matrix cpp.js: specifier: workspace:^ - version: link:../cpp.js + version: link:../../cppjs-core/cpp.js devDependencies: '@playwright/test': specifier: ^1.49.1 @@ -587,11 +2423,11 @@ importers: specifier: ^14.2.4 version: 14.2.4 - packages/cppjs-sample-web-vue-vite: + cppjs-samples/cppjs-sample-web-vue-vite: dependencies: '@cpp.js/plugin-vite': specifier: workspace:^ - version: link:../cppjs-plugin-vite + version: link:../../cppjs-plugins/cppjs-plugin-vite '@cpp.js/sample-lib-prebuilt-matrix': specifier: workspace:^ version: link:../cppjs-sample-lib-prebuilt-matrix @@ -1605,32 +3441,75 @@ packages: resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20241218.0': - resolution: {integrity: sha512-8rveQoxtUvlmORKqTWgjv2ycM8uqWox0u9evn3zd2iWKdou5sncFwH517ZRLI3rq9P31ZLmCQBZ0gloFsTeY6w==} + '@cloudflare/kv-asset-handler@0.4.0': + resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} + engines: {node: '>=18.0.0'} + + '@cloudflare/unenv-preset@2.7.11': + resolution: {integrity: sha512-se23f1D4PxKrMKOq+Stz+Yn7AJ9ITHcEecXo2Yjb+UgbUDCEBch1FXQC6hx6uT5fNA3kmX3mfzeZiUmpK1W9IQ==} + peerDependencies: + unenv: 2.0.0-rc.24 + workerd: ^1.20251106.1 + peerDependenciesMeta: + workerd: + optional: true + + '@cloudflare/workerd-darwin-64@1.20250129.0': + resolution: {integrity: sha512-M+xETVnl+xy2dfDDWmp0XXr2rttl70a6bljQygl0EmYmNswFTcYbQWCaBuNBo9kabU59rLKr4a/b3QZ07NoL/g==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + + '@cloudflare/workerd-darwin-64@1.20251118.0': + resolution: {integrity: sha512-UmWmYEYS/LkK/4HFKN6xf3Hk8cw70PviR+ftr3hUvs9HYZS92IseZEp16pkL6ZBETrPRpZC7OrzoYF7ky6kHsg==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20241218.0': - resolution: {integrity: sha512-be59Ad9nmM9lCkhHqmTs/uZ3JVZt8NJ9Z0PY+B0xnc5z6WwmV2lj0RVLtq7xJhQsQJA189zt5rXqDP6J+2mu7Q==} + '@cloudflare/workerd-darwin-arm64@1.20250129.0': + resolution: {integrity: sha512-c4PQUyIMp+bCMxZkAMBzXgTHjRZxeYCujDbb3staestqgRbenzcfauXsMd6np35ng+EE1uBgHNPV4+7fC0ZBfg==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + + '@cloudflare/workerd-darwin-arm64@1.20251118.0': + resolution: {integrity: sha512-RockU7Qzf4rxNfY1lx3j4rvwutNLjTIX7rr2hogbQ4mzLo8Ea40/oZTzXVxl+on75joLBrt0YpenGW8o/r44QA==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20241218.0': - resolution: {integrity: sha512-MzpSBcfZXRxrYWxQ4pVDYDrUbkQuM62ssl4ZtHH8J35OAeGsWFAYji6MkS2SpVwVcvacPwJXIF4JSzp4xKImKw==} + '@cloudflare/workerd-linux-64@1.20250129.0': + resolution: {integrity: sha512-xJx8LwWFxsm5U3DETJwRuOmT5RWBqm4FmA4itYXvcEICca9pWJDB641kT4PnpypwDNmYOebhU7A+JUrCRucG0w==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + + '@cloudflare/workerd-linux-64@1.20251118.0': + resolution: {integrity: sha512-aT97GnOAbJDuuOG0zPVhgRk0xFtB1dzBMrxMZ09eubDLoU4djH4BuORaqvxNRMmHgKfa4T6drthckT0NjUvBdw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20241218.0': - resolution: {integrity: sha512-RIuJjPxpNqvwIs52vQsXeRMttvhIjgg9NLjjFa3jK8Ijnj8c3ZDru9Wqi48lJP07yDFIRr4uDMMqh/y29YQi2A==} + '@cloudflare/workerd-linux-arm64@1.20250129.0': + resolution: {integrity: sha512-dR//npbaX5p323huBVNIy5gaWubQx6CC3aiXeK0yX4aD5ar8AjxQFb2U/Sgjeo65Rkt53hJWqC7IwRpK/eOxrA==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + + '@cloudflare/workerd-linux-arm64@1.20251118.0': + resolution: {integrity: sha512-bXZPJcwlq00MPOXqP7DMWjr+goYj0+Fqyw6zgEC2M3FR1+SWla4yjghnZ4IdpN+H1t7VbUrsi5np2LzMUFs0NA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20241218.0': - resolution: {integrity: sha512-tO1VjlvK3F6Yb2d1jgEy/QBYl//9Pyv3K0j+lq8Eu7qdfm0IgKwSRgDWLept84/qmNsQfausZ4JdNGxTf9xsxQ==} + '@cloudflare/workerd-windows-64@1.20250129.0': + resolution: {integrity: sha512-OeO+1nPj/ocAE3adFar/tRFGRkbCrBnrOYXq0FUBSpyNHpDdA9/U3PAw5CN4zvjfTnqXZfTxTFeqoruqzRzbtg==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + + '@cloudflare/workerd-windows-64@1.20251118.0': + resolution: {integrity: sha512-2LV99AHSlpr8WcCb/BYbU2QsYkXLUL1izN6YKWkN9Eibv80JKX0RtgmD3dfmajE5sNvClavxZejgzVvHD9N9Ag==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -2123,6 +4002,9 @@ packages: resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==} engines: {node: '>=0.8.0'} + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: @@ -2139,6 +4021,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -2151,6 +4039,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -2163,6 +4057,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -2175,6 +4075,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -2187,6 +4093,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -2199,6 +4111,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -2211,6 +4129,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -2223,6 +4147,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -2235,6 +4165,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -2247,6 +4183,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -2259,6 +4201,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -2271,6 +4219,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -2283,6 +4237,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -2295,6 +4255,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -2307,6 +4273,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -2319,6 +4291,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -2331,6 +4309,18 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -2343,12 +4333,24 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.24.0': resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -2361,6 +4363,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -2373,6 +4381,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -2385,6 +4399,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -2397,6 +4417,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -2409,6 +4435,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2580,6 +4612,111 @@ packages: '@iconify/utils@2.2.1': resolution: {integrity: sha512-0/7J7hk4PqXmxo5PDBDxmnecw5PxklZJfNjIVG9FM0mEfVrvfudS22rYWsqVk6gR3UJ/mSYS90X4R3znXnqfNA==} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2816,6 +4953,15 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@poppinss/colors@4.1.5': + resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} + + '@poppinss/dumper@0.6.5': + resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} + + '@poppinss/exception@1.2.2': + resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} + '@radix-ui/react-compose-refs@1.0.0': resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: @@ -3409,6 +5555,10 @@ packages: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} + '@sindresorhus/is@7.1.1': + resolution: {integrity: sha512-rO92VvpgMc3kfiTjGT52LEtJ8Yc5kCWhZjLQ3LwlA4pSgPpQO7bVpYXParOD8Jwf+cVQECJo3yP/4I8aZtUQTQ==} + engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} @@ -3424,6 +5574,9 @@ packages: '@slorber/remark-comment@1.0.0': resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + '@speed-highlight/core@1.2.12': + resolution: {integrity: sha512-uilwrK0Ygyri5dToHYdZSjcvpS2ZwX0w5aSt3GCEN9hrjxWCoeV4Z2DTXuxjwbntaLQIEEAlCeNQss5SoHvAEA==} + '@sveltejs/vite-plugin-svelte-inspector@4.0.1': resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} @@ -4156,6 +6309,10 @@ packages: peerDependencies: acorn: '>=8.9.0' + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} @@ -4646,9 +6803,6 @@ packages: caniuse-lite@1.0.30001690: resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} - capnp-ts@0.7.0: - resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} - ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -4713,10 +6867,6 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -4988,6 +7138,10 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + copy-text-to-clipboard@3.2.0: resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} engines: {node: '>=12'} @@ -5384,9 +7538,6 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -5556,6 +7707,10 @@ packages: engines: {node: '>=0.10'} hasBin: true + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -5741,6 +7896,9 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} @@ -5798,6 +7956,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -7360,9 +9523,6 @@ packages: resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==} engines: {node: '>= 0.4'} - itty-time@1.0.6: - resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -8276,11 +10436,16 @@ packages: peerDependencies: webpack: ^5.0.0 - miniflare@3.20241218.0: - resolution: {integrity: sha512-spYFDArH0wd+wJSTrzBrWrXJrbyJhRMJa35mat947y1jYhVV8I5V8vnD3LwjfpLr0SaEilojz1OIW7ekmnRe+w==} + miniflare@3.20250129.0: + resolution: {integrity: sha512-qYlGEjMl/2kJdgNaztj4hpA64d6Dl79Lx/NL61p/v5XZRiWanBOTgkQqdPxCKZOj6KQnioqhC7lfd6jDXKSs2A==} engines: {node: '>=16.13'} hasBin: true + miniflare@4.20251118.1: + resolution: {integrity: sha512-uLSAE/DvOm392fiaig4LOaatxLjM7xzIniFRG5Y3yF9IduOYLLK/pkCPQNCgKQH3ou0YJRHnTN+09LPfqYNTQQ==} + engines: {node: '>=18.0.0'} + hasBin: true + minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -8341,6 +10506,9 @@ packages: mlly@1.7.3: resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -8822,6 +10990,12 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -8879,6 +11053,9 @@ packages: pkg-types@1.2.1: resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -9678,10 +11855,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - readdirp@4.0.2: - resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} - engines: {node: '>= 14.16.0'} - reading-time@1.5.0: resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} @@ -10099,6 +12272,10 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -10452,6 +12629,10 @@ packages: resolution: {integrity: sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==} engines: {node: '>=14.16'} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -10791,8 +12972,15 @@ packages: resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} engines: {node: '>=18.17'} - unenv-nightly@2.0.0-20241204-140205-a5d5190: - resolution: {integrity: sha512-jpmAytLeiiW01pl5bhVn9wYJ4vtiLdhGe10oXlJBuQEX8mxjxO8BlEXGHU4vr4yEikjFP1wsomTHt/CLU8kUwg==} + undici@7.14.0: + resolution: {integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==} + engines: {node: '>=20.18.1'} + + unenv@2.0.0-rc.1: + resolution: {integrity: sha512-PU5fb40H8X149s117aB4ytbORcCvlASdtF97tfls4BPIyj4PeVxvpSuy1jAptqYHqB0vb2w2sHvzM0XWcp2OKg==} + + unenv@2.0.0-rc.24: + resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -11254,17 +13442,32 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20241218.0: - resolution: {integrity: sha512-7Z3D4vOVChMz9mWDffE299oQxUWm/pbkeAWx1btVamPcAK/2IuoNBhwflWo3jyuKuxvYuFAdIucgYxc8ICqXiA==} + workerd@1.20250129.0: + resolution: {integrity: sha512-Rprz8rxKTF4l6q/nYYI07lBetJnR19mGipx+u/a27GZOPKMG5SLIzA2NciZlJaB2Qd5YY+4p/eHOeKqo5keVWA==} + engines: {node: '>=16'} + hasBin: true + + workerd@1.20251118.0: + resolution: {integrity: sha512-Om5ns0Lyx/LKtYI04IV0bjIrkBgoFNg0p6urzr2asekJlfP18RqFzyqMFZKf0i9Gnjtz/JfAS/Ol6tjCe5JJsQ==} engines: {node: '>=16'} hasBin: true - wrangler@3.99.0: - resolution: {integrity: sha512-k0x4rT3G/QCbxcoZY7CHRVlAIS8WMmKdga6lf4d2c3gXFqssh44vwlTDuARA9QANBxKJTcA7JPTJRfUDhd9QBA==} + wrangler@3.107.3: + resolution: {integrity: sha512-N9ZMDHZ+DI5/B0yclr3bG57U/Zw7wSzGdpO2l7j6+3q8yUf+4Fk0Rvneo2t8rjLewKlvqgt9D9siFuo8MXJ55Q==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20241218.0 + '@cloudflare/workers-types': ^4.20250129.0 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + + wrangler@4.50.0: + resolution: {integrity: sha512-+nuZuHZxDdKmAyXOSrHlciGshCoAPiy5dM+t6mEohWm7HpXvTHmWQGUf/na9jjWlWJHCJYOWzkA1P5HBJqrIEA==} + engines: {node: '>=20.0.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20251118.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -11329,6 +13532,18 @@ packages: utf-8-validate: optional: true + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xcode@3.0.1: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} @@ -11337,6 +13552,10 @@ packages: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} engines: {node: '>=12'} + xhr2@0.2.1: + resolution: {integrity: sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==} + engines: {node: '>= 6'} + xml-js@1.6.11: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true @@ -11361,9 +13580,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - xxhash-wasm@1.1.0: - resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} - y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -11417,9 +13633,15 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + youch@3.3.4: resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} + youch@4.1.0-beta.10: + resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} @@ -11429,6 +13651,9 @@ packages: peerDependencies: zod: ^3.18.0 + zod@3.22.3: + resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + zod@3.24.1: resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} @@ -12686,19 +14911,44 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20241218.0': + '@cloudflare/kv-asset-handler@0.4.0': + dependencies: + mime: 3.0.0 + + '@cloudflare/unenv-preset@2.7.11(unenv@2.0.0-rc.24)(workerd@1.20251118.0)': + dependencies: + unenv: 2.0.0-rc.24 + optionalDependencies: + workerd: 1.20251118.0 + + '@cloudflare/workerd-darwin-64@1.20250129.0': + optional: true + + '@cloudflare/workerd-darwin-64@1.20251118.0': + optional: true + + '@cloudflare/workerd-darwin-arm64@1.20250129.0': + optional: true + + '@cloudflare/workerd-darwin-arm64@1.20251118.0': + optional: true + + '@cloudflare/workerd-linux-64@1.20250129.0': + optional: true + + '@cloudflare/workerd-linux-64@1.20251118.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20241218.0': + '@cloudflare/workerd-linux-arm64@1.20250129.0': optional: true - '@cloudflare/workerd-linux-64@1.20241218.0': + '@cloudflare/workerd-linux-arm64@1.20251118.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20241218.0': + '@cloudflare/workerd-windows-64@1.20250129.0': optional: true - '@cloudflare/workerd-windows-64@1.20241218.0': + '@cloudflare/workerd-windows-64@1.20251118.0': optional: true '@colors/colors@1.5.0': @@ -13871,6 +16121,11 @@ snapshots: dependencies: '@types/hammerjs': 2.0.46 + '@emnapi/runtime@1.7.1': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': dependencies: esbuild: 0.17.19 @@ -13884,141 +16139,216 @@ snapshots: '@esbuild/aix-ppc64@0.24.0': optional: true + '@esbuild/aix-ppc64@0.25.4': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true '@esbuild/android-arm64@0.24.0': optional: true + '@esbuild/android-arm64@0.25.4': + optional: true + '@esbuild/android-arm@0.17.19': optional: true '@esbuild/android-arm@0.24.0': optional: true + '@esbuild/android-arm@0.25.4': + optional: true + '@esbuild/android-x64@0.17.19': optional: true '@esbuild/android-x64@0.24.0': optional: true + '@esbuild/android-x64@0.25.4': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true '@esbuild/darwin-arm64@0.24.0': optional: true + '@esbuild/darwin-arm64@0.25.4': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true '@esbuild/darwin-x64@0.24.0': optional: true + '@esbuild/darwin-x64@0.25.4': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true '@esbuild/freebsd-arm64@0.24.0': optional: true + '@esbuild/freebsd-arm64@0.25.4': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true '@esbuild/freebsd-x64@0.24.0': optional: true + '@esbuild/freebsd-x64@0.25.4': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true '@esbuild/linux-arm64@0.24.0': optional: true + '@esbuild/linux-arm64@0.25.4': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true '@esbuild/linux-arm@0.24.0': optional: true + '@esbuild/linux-arm@0.25.4': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true '@esbuild/linux-ia32@0.24.0': optional: true + '@esbuild/linux-ia32@0.25.4': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true '@esbuild/linux-loong64@0.24.0': optional: true + '@esbuild/linux-loong64@0.25.4': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true '@esbuild/linux-mips64el@0.24.0': optional: true + '@esbuild/linux-mips64el@0.25.4': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true '@esbuild/linux-ppc64@0.24.0': optional: true + '@esbuild/linux-ppc64@0.25.4': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true '@esbuild/linux-riscv64@0.24.0': optional: true + '@esbuild/linux-riscv64@0.25.4': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true '@esbuild/linux-s390x@0.24.0': optional: true + '@esbuild/linux-s390x@0.25.4': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true '@esbuild/linux-x64@0.24.0': optional: true + '@esbuild/linux-x64@0.25.4': + optional: true + + '@esbuild/netbsd-arm64@0.25.4': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true '@esbuild/netbsd-x64@0.24.0': optional: true + '@esbuild/netbsd-x64@0.25.4': + optional: true + '@esbuild/openbsd-arm64@0.24.0': optional: true + '@esbuild/openbsd-arm64@0.25.4': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true '@esbuild/openbsd-x64@0.24.0': optional: true + '@esbuild/openbsd-x64@0.25.4': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true '@esbuild/sunos-x64@0.24.0': optional: true + '@esbuild/sunos-x64@0.25.4': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true '@esbuild/win32-arm64@0.24.0': optional: true + '@esbuild/win32-arm64@0.25.4': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true '@esbuild/win32-ia32@0.24.0': optional: true + '@esbuild/win32-ia32@0.25.4': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true '@esbuild/win32-x64@0.24.0': optional: true + '@esbuild/win32-x64@0.25.4': + optional: true + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 @@ -14163,7 +16493,7 @@ snapshots: text-table: 0.2.0 url-join: 4.0.0 wrap-ansi: 7.0.0 - ws: 8.18.0 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - encoding @@ -14428,6 +16758,81 @@ snapshots: transitivePeerDependencies: - supports-color + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.7.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -14839,6 +17244,18 @@ snapshots: '@polka/url@1.0.0-next.28': {} + '@poppinss/colors@4.1.5': + dependencies: + kleur: 4.1.5 + + '@poppinss/dumper@0.6.5': + dependencies: + '@poppinss/colors': 4.1.5 + '@sindresorhus/is': 7.1.1 + supports-color: 10.2.2 + + '@poppinss/exception@1.2.2': {} + '@radix-ui/react-compose-refs@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.26.0 @@ -15854,7 +18271,7 @@ snapshots: p-retry: 4.6.2 webpack-dev-middleware: 7.4.2(webpack@5.97.1) webpack-dev-server: 5.0.4(webpack@5.97.1) - ws: 8.18.0 + ws: 8.18.3 transitivePeerDependencies: - '@types/express' - bufferutil @@ -15894,6 +18311,8 @@ snapshots: '@sindresorhus/is@5.6.0': {} + '@sindresorhus/is@7.1.1': {} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 @@ -15918,6 +18337,8 @@ snapshots: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 + '@speed-highlight/core@1.2.12': {} + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.15.0)(vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1)))(svelte@5.15.0)(vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1))': dependencies: '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.15.0)(vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1)) @@ -16789,6 +19210,8 @@ snapshots: dependencies: acorn: 8.14.0 + acorn-walk@8.3.2: {} + acorn-walk@8.3.4: dependencies: acorn: 8.14.0 @@ -17410,13 +19833,6 @@ snapshots: caniuse-lite@1.0.30001690: {} - capnp-ts@0.7.0: - dependencies: - debug: 4.4.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - ccount@2.0.1: {} chalk-template@0.4.0: @@ -17497,10 +19913,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chokidar@4.0.3: - dependencies: - readdirp: 4.0.2 - chownr@2.0.0: {} chrome-launcher@0.15.2: @@ -17752,6 +20164,8 @@ snapshots: cookie@0.7.2: {} + cookie@1.0.2: {} + copy-text-to-clipboard@3.2.0: {} copy-webpack-plugin@11.0.0(webpack@5.97.1): @@ -18233,8 +20647,6 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - date-fns@4.1.0: {} - dayjs@1.11.13: {} dead-or-alive@1.0.4: @@ -18393,6 +20805,8 @@ snapshots: detect-libc@1.0.3: {} + detect-libc@2.1.2: {} + detect-newline@3.1.0: {} detect-node@2.1.0: {} @@ -18564,6 +20978,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error-stack-parser-es@1.0.5: {} + error-stack-parser@2.1.4: dependencies: stackframe: 1.3.4 @@ -18734,6 +21150,34 @@ snapshots: '@esbuild/win32-ia32': 0.24.0 '@esbuild/win32-x64': 0.24.0 + esbuild@0.25.4: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 + escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -20573,8 +23017,6 @@ snapshots: reflect.getprototypeof: 1.0.9 set-function-name: 2.0.2 - itty-time@1.0.6: {} - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -21124,7 +23566,7 @@ snapshots: local-pkg@0.5.1: dependencies: - mlly: 1.7.3 + mlly: 1.7.4 pkg-types: 1.2.1 locate-character@3.0.0: {} @@ -22194,23 +24636,39 @@ snapshots: tapable: 2.2.1 webpack: 5.97.1 - miniflare@3.20241218.0: + miniflare@3.20250129.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 acorn-walk: 8.3.4 - capnp-ts: 0.7.0 exit-hook: 2.2.1 glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.4 - workerd: 1.20241218.0 - ws: 8.18.0 + workerd: 1.20250129.0 + ws: 8.18.3 youch: 3.3.4 zod: 3.24.1 transitivePeerDependencies: - bufferutil - - supports-color + - utf-8-validate + + miniflare@4.20251118.1: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + acorn: 8.14.0 + acorn-walk: 8.3.2 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + sharp: 0.33.5 + stoppable: 1.1.0 + undici: 7.14.0 + workerd: 1.20251118.0 + ws: 8.18.0 + youch: 4.1.0-beta.10 + zod: 3.22.3 + transitivePeerDependencies: + - bufferutil - utf-8-validate minimalistic-assert@1.0.1: {} @@ -22271,6 +24729,13 @@ snapshots: pkg-types: 1.2.1 ufo: 1.5.4 + mlly@1.7.4: + dependencies: + acorn: 8.14.0 + pathe: 2.0.2 + pkg-types: 1.3.1 + ufo: 1.5.4 + mri@1.2.0: {} mrmime@1.0.1: {} @@ -22745,6 +25210,10 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.2: {} + + pathe@2.0.3: {} + pend@1.2.0: {} picocolors@1.1.1: {} @@ -22784,9 +25253,15 @@ snapshots: pkg-types@1.2.1: dependencies: confbox: 0.1.8 - mlly: 1.7.3 + mlly: 1.7.4 pathe: 1.1.2 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.2 + pkg-up@3.1.0: dependencies: find-up: 3.0.0 @@ -23819,8 +26294,6 @@ snapshots: dependencies: picomatch: 2.3.1 - readdirp@4.0.2: {} - reading-time@1.5.0: {} readline@1.3.0: {} @@ -24416,6 +26889,32 @@ snapshots: shallowequal@1.1.0: {} + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.1.2 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -24805,6 +27304,8 @@ snapshots: function-timeout: 0.1.1 time-span: 5.1.0 + supports-color@10.2.2: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -25157,13 +27658,20 @@ snapshots: undici@6.21.0: {} - unenv-nightly@2.0.0-20241204-140205-a5d5190: + undici@7.14.0: {} + + unenv@2.0.0-rc.1: dependencies: defu: 6.1.4 + mlly: 1.7.4 ohash: 1.1.4 pathe: 1.1.2 ufo: 1.5.4 + unenv@2.0.0-rc.24: + dependencies: + pathe: 2.0.3 + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-emoji-modifier-base@1.0.0: {} @@ -25433,7 +27941,7 @@ snapshots: vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(terser@5.37.0)(yaml@2.6.1): dependencies: esbuild: 0.24.0 - postcss: 8.4.49 + postcss: 8.5.1 rollup: 4.29.1 optionalDependencies: '@types/node': 22.10.2 @@ -25554,7 +28062,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.97.1): dependencies: - colorette: 2.0.19 + colorette: 2.0.20 memfs: 4.15.1 mime-types: 2.1.35 on-finished: 2.4.1 @@ -25594,7 +28102,7 @@ snapshots: sockjs: 0.3.24 spdy: 4.0.2 webpack-dev-middleware: 5.3.4(webpack@5.97.1) - ws: 8.18.0 + ws: 8.18.3 optionalDependencies: webpack: 5.97.1 transitivePeerDependencies: @@ -25615,7 +28123,7 @@ snapshots: ansi-html-community: 0.0.8 bonjour-service: 1.3.0 chokidar: 3.6.0 - colorette: 2.0.19 + colorette: 2.0.20 compression: 1.7.5 connect-history-api-fallback: 2.0.0 default-gateway: 6.0.3 @@ -25634,7 +28142,7 @@ snapshots: sockjs: 0.3.24 spdy: 4.0.2 webpack-dev-middleware: 7.4.2(webpack@5.97.1) - ws: 8.18.0 + ws: 8.18.3 optionalDependencies: webpack: 5.97.1 transitivePeerDependencies: @@ -25784,38 +28292,53 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20241218.0: + workerd@1.20250129.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20241218.0 - '@cloudflare/workerd-darwin-arm64': 1.20241218.0 - '@cloudflare/workerd-linux-64': 1.20241218.0 - '@cloudflare/workerd-linux-arm64': 1.20241218.0 - '@cloudflare/workerd-windows-64': 1.20241218.0 + '@cloudflare/workerd-darwin-64': 1.20250129.0 + '@cloudflare/workerd-darwin-arm64': 1.20250129.0 + '@cloudflare/workerd-linux-64': 1.20250129.0 + '@cloudflare/workerd-linux-arm64': 1.20250129.0 + '@cloudflare/workerd-windows-64': 1.20250129.0 - wrangler@3.99.0: + workerd@1.20251118.0: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20251118.0 + '@cloudflare/workerd-darwin-arm64': 1.20251118.0 + '@cloudflare/workerd-linux-64': 1.20251118.0 + '@cloudflare/workerd-linux-arm64': 1.20251118.0 + '@cloudflare/workerd-windows-64': 1.20251118.0 + + wrangler@3.107.3: dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 - chokidar: 4.0.3 - date-fns: 4.1.0 esbuild: 0.17.19 - itty-time: 1.0.6 - miniflare: 3.20241218.0 - nanoid: 3.3.8 + miniflare: 3.20250129.0 path-to-regexp: 6.3.0 - resolve: 1.22.10 - selfsigned: 2.4.1 - source-map: 0.6.1 - unenv: unenv-nightly@2.0.0-20241204-140205-a5d5190 - workerd: 1.20241218.0 - xxhash-wasm: 1.1.0 + unenv: 2.0.0-rc.1 + workerd: 1.20250129.0 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + wrangler@4.50.0: + dependencies: + '@cloudflare/kv-asset-handler': 0.4.0 + '@cloudflare/unenv-preset': 2.7.11(unenv@2.0.0-rc.24)(workerd@1.20251118.0) + blake3-wasm: 2.1.5 + esbuild: 0.25.4 + miniflare: 4.20251118.1 + path-to-regexp: 6.3.0 + unenv: 2.0.0-rc.24 + workerd: 1.20251118.0 optionalDependencies: fsevents: 2.3.3 transitivePeerDependencies: - bufferutil - - supports-color - utf-8-validate wrap-ansi@6.2.0: @@ -25864,6 +28387,8 @@ snapshots: ws@8.18.0: {} + ws@8.18.3: {} + xcode@3.0.1: dependencies: simple-plist: 1.3.1 @@ -25871,6 +28396,8 @@ snapshots: xdg-basedir@5.1.0: {} + xhr2@0.2.1: {} + xml-js@1.6.11: dependencies: sax: 1.4.1 @@ -25888,8 +28415,6 @@ snapshots: xtend@4.0.2: {} - xxhash-wasm@1.1.0: {} - y18n@4.0.3: {} y18n@5.0.8: {} @@ -25952,18 +28477,33 @@ snapshots: yocto-queue@1.1.1: {} + youch-core@0.3.3: + dependencies: + '@poppinss/exception': 1.2.2 + error-stack-parser-es: 1.0.5 + youch@3.3.4: dependencies: cookie: 0.7.2 mustache: 4.2.0 stacktracey: 2.1.8 + youch@4.1.0-beta.10: + dependencies: + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.5 + '@speed-highlight/core': 1.2.12 + cookie: 1.0.2 + youch-core: 0.3.3 + zimmerframe@1.1.2: {} zod-validation-error@2.1.0(zod@3.24.1): dependencies: zod: 3.24.1 + zod@3.22.3: {} + zod@3.24.1: {} zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0c03b413..886c2a1a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,9 @@ packages: - - 'packages/*' + - 'cppjs-core/*' + - 'cppjs-plugins/*' + - 'cppjs-samples/*' + - '!cppjs-samples/cppjs-sample-mobile-reactnative-expo' + - 'cppjs-packages/*/*' + - 'cppjs-extensions/*' - 'website' - - '!packages/cppjs-sample-mobile-reactnative-expo' - '!**/test/**'